Foros del Web » Creando para Internet » Sistemas de gestión de contenidos » WordPress »

[SOLUCIONADO] ID del post en Metabox

Estas en el tema de ID del post en Metabox en el foro de WordPress en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 23/09/2016, 14:18
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.774
Antigüedad: 16 años, 2 meses
Puntos: 1146
ID del post en Metabox

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
  1. <?php
  2. class SW_MetaBox
  3. {
  4.    
  5.     public function init(){
  6.         add_action('add_meta_boxes', [$this, 'add_metaboxes']);
  7.     }
  8.  
  9.     public function add_metaboxes($post_type, $post){
  10.         add_meta_box('nx_post', 'Titulo del metabox', [$this, 'add_box_nx'], 'post');
  11.         add_meta_box('ny_post', 'Titulo del metabox2', [$this, 'add_box_ny'], 'post');
  12.         add_meta_box('nz_post', 'Titulo del metabox3', [$this, 'add_box_nz'], 'post');
  13.     }
  14.  
  15.     public function add_box_nx($post){
  16.         var_dump($post->ID); // muestra el ID del post Correctamente
  17.     }
  18.  
  19.     public function add_box_ny($post){
  20.         var_dump($post->ID); // muestra el ID del post Incorrectamente
  21.     }
  22.  
  23.     public function add_box_nz($post){
  24.         var_dump($post->ID); // muestra el ID del post Incorrectamente
  25.     }
  26.  
  27. }
  28.  
  29. $SW_MetaBox = new SW_MetaBox;
  30. $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.
  #2 (permalink)  
Antiguo 26/09/2016, 10:58
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.774
Antigüedad: 16 años, 2 meses
Puntos: 1146
Respuesta: ID del post en Metabox

Por si a alguien mas le sirve, el problema era que en uno de los metabox hago uso de WP_Query

no se si sea un bug o simplemente no se tuviera contemplado el uso de esta función dentro de un metabox, pero el wp_reset_postdata no funciona dentro del editor de post, por lo cual al utilizar un loop de post el ID se mueve y no se puede resetear.

Por lo que tuve que cambiar mi código de
Código PHP:
Ver original
  1. // metodo con problemas por WP_Query
  2. public function add_box_nx($post){
  3.             $variable = get_post_meta($post->ID, 'variable', true);
  4.         }
  5.  
  6. // metodo que previene el problema con WP_Query    
  7.         public function add_box_nx(){
  8.             $variable = null;
  9.             if(isset($_GET['post'])){
  10.                 $variable = get_post_meta($_GET['post'], 'variable', true);
  11.             }
  12.         }

De momento esto me ha servido, aunque abra que ser consciente, que si se instala algun plugin para el editor y este obtiene el ID del post con el método que ha dado problemas pues nos acarreara mas problemas.

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:41.