Hoy me ha pasado algo curioso que no supe como resolver, quiziera ver si a alguien mas le ha ocurrido y como logro solventarlo.
Tengo una clase similar a esta e intento obtener el ID del post para generar otros datos pero solo en una funcion obtenego el ID correctamente y el resto de las funciones me obtine otro ID existente pero de otro post.
Código PHP:
Ver original<?php
class SW_MetaBox
{
public function init(){
add_action('add_meta_boxes', [$this, 'add_metaboxes']);
}
public function add_metaboxes($post_type, $post){
add_meta_box('nx_post', 'Titulo del metabox', [$this, 'add_box_nx'], 'post');
add_meta_box('ny_post', 'Titulo del metabox2', [$this, 'add_box_ny'], 'post');
add_meta_box('nz_post', 'Titulo del metabox3', [$this, 'add_box_nz'], 'post');
}
public function add_box_nx($post){
var_dump($post->ID); // muestra el ID del post Correctamente }
public function add_box_ny($post){
var_dump($post->ID); // muestra el ID del post Incorrectamente }
public function add_box_nz($post){
var_dump($post->ID); // muestra el ID del post Incorrectamente }
}
$SW_MetaBox = new SW_MetaBox;
$SW_MetaBox->init();
Ya probé con una instalación limpia de wordpress sin plugins y con tan solo el template de default y obtengo el mismo resultado, así que no es por estos motivos.