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

Conocer el ID del post antes de cargar plantilla en wordpress

Estas en el tema de Conocer el ID del post antes de cargar plantilla en wordpress en el foro de WordPress en Foros del Web. Hola amigos, Estoy haciendo un sistema bajo wordpress con custom post types y meta boxes, mi problema es que quiero conocer el ID del post ...
  #1 (permalink)  
Antiguo 18/05/2011, 15:22
 
Fecha de Ingreso: mayo-2011
Mensajes: 1
Antigüedad: 13 años, 6 meses
Puntos: 0
Conocer el ID del post antes de cargar plantilla en wordpress

Hola amigos,

Estoy haciendo un sistema bajo wordpress con custom post types y meta boxes, mi problema es que quiero conocer el ID del post o en este caso de la pagina que ha sido llamada y buscar a que tipo de post_type pertenece y en base al tipo seleccionar la plantilla correspondiente, llevo 8 horas tratando de darle solucion y nada me funciona, ya probe

Código PHP:
get_the_ID()
$variable $post->ID

claro que me funciona si hago
:

global 
$wp_query;
$wp_query = new WP_Query "post_type=mipostype&post_status=publish");

pero precisamente eso es lo que requiero saber para armar dinamicamente el template 


Busque y busque por la red tratando de encontrar una solucion y no la encontre, se que aqui se le dara solucion, como puedo obtener el ID del post que ha sido llamado antes de que cargue el sitio?

Gracias
  #2 (permalink)  
Antiguo 18/05/2011, 15:32
 
Fecha de Ingreso: julio-2009
Ubicación: Argentinalandia
Mensajes: 339
Antigüedad: 15 años, 4 meses
Puntos: 15
Respuesta: Conocer el ID del post antes de cargar plantilla en wordpress

Perdon que sea metido pero .. a que quieres decir "para que type_post pertenece" ??
Si es un post o si es una pagina?
Si es post regular o si es sticky?
Si es de determinada categoria o con determinadas etiquetas?

porque por ahi se puede resolver de otra forma y evitas una consulta directa a la DB
__________________
Mi Perfil y Blog estan en Yeow.com.ar ✰✰✰✰✰
Pero en WONDED.COM estan Mis Proyectos OpenSource ;-)
  #3 (permalink)  
Antiguo 18/05/2011, 19:03
Avatar de metacortex
Viejo demente
 
Fecha de Ingreso: junio-2004
Ubicación: Caracas - Venezuela
Mensajes: 9.027
Antigüedad: 20 años, 5 meses
Puntos: 832
Respuesta: Conocer el ID del post antes de cargar plantilla en wordpress

Cita:
Iniciado por jtorresdf Ver Mensaje
claro que me funciona si hago:
Código PHP:
global $wp_query;
$wp_query = new WP_Query "post_type=mipostype&post_status=publish"); 
Si te funciona es un milagro porque falta un paréntesis ahí.

Si quieres reflejar la ID puedes hacerlo dentro del loop con the_ID(), get_the_ID() (la versión retornable de la anterior) o $post->ID.

Para capturar la ID fuera del loop usa get_query_var con el parámetro de post:

Código PHP:
<?php echo get_query_var('p'); ?>
  #4 (permalink)  
Antiguo 18/05/2011, 21:13
Avatar de j_aroche
Server Ninja
 
Fecha de Ingreso: agosto-2006
Ubicación: iPhone: 14.624481,-90.487457
Mensajes: 2.066
Antigüedad: 18 años, 3 meses
Puntos: 223
Respuesta: Conocer el ID del post antes de cargar plantilla en wordpress

Lo que necesitas es:

Código PHP:
Ver original
  1. function single_minipost( $file )
  2. {  
  3.     if ( !is_single() )
  4.         return $file;
  5.    
  6.     global $post;
  7.     if( $post->post_type == 'mipostype')
  8.         return STYLESHEETPATH  . '/single_minipost.php';
  9.     return $file;
  10. }
  11.  
  12. add_filter('single_template', 'single_minipost');

Nota el global $post; Con esto no tienes que hacer siquiera la consulta a la base de datos porque Wordpress ya tiene todos los datos del post en $post. Esto se ejecuta justo antes de llamar a la plantilla que se usará durante el single, así que puedes "redireccionar" la llamada a otro php
__________________
Blog: JavierAroche.com - Twitter: @j_aroche

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 00:08.