En estos ejemplos, mostrar茅 c贸mo obtener la identificaci贸n de la publicaci贸n: t铆tulo de la publicaci贸n, slug, URL de la publicaci贸n, clave meta y meta valor, categor铆a / ID de etiqueta, etc.
Estos m茅todos tambi茅n funcionan para p谩ginas de WordPress y tipos de publicaciones personalizadas.
Si est谩s buscando informaci贸n de una publicaci贸n por ID, todo lo que necesitas es usar la get_post()
funci贸n, por ejemplo:
$post = get_post( 52 ); // Mostramos el t铆tulo del post con id 52 echo $post->post_title;
O tambi茅n se pueden obtener publicaciones por ID con WordPress WP_Query
:
$query = new WP_Query( array( 'p' => 52 ) ); $query->the_post(); // Llamamos al post con id 25 echo $query->post->post_type; // Mostramos seg煤n el estado del post (Activado/Privado/Borrador) echo $query->post->post_status;
Objeto $global post
El objeto global $post
contiene muchos datos de la publicaci贸n actual . Es muy f谩cil obtener la identificaci贸n del objeto:
echo $ post -> ID ;
A veces, cuando lo est谩 utilizando dentro de una funci贸n (o en cualquier caso cuando no imprime nada 馃檪 simplemente agrega la sentenciaglobal $post;
al principio del c贸digo.
$ post global ; echo $ post -> ID ;
6. Uso de las funciones get_the_id () y the_id ()
La diferencia entre estas dos funciones es que get_the_id()
devuelve la identificaci贸n de la publicaci贸n actual y la the_id()
imprime.
echo get_the_id ( ) ;
the_id ( ) ;
7. Obtener ID de publicaci贸n por t铆tulo
Esta es una funci贸n incorporada de WordPress y desde la versi贸n 3.0.0 funciona no solo para p谩ginas sino para cualquier tipo de publicaci贸n personalizada. El tercer par谩metro de funci贸n es el nombre de un tipo de publicaci贸n ( page
por defecto).
$ mypost = get_page_by_title ( 'Hola mundo' , '' , 'post' ) ; echo $ mypost -> ID ;
8. Obtenga ID de publicaci贸n por Slug
La funci贸n es similar a get_page_by_title()
. Pero si su publicaci贸n tiene padres (solo para tipos de publicaciones jer谩rquicas), tambi茅n debe especificar la secci贸n principal, por ejemplo parent-post/hello-world
.
$ mypost = get_page_by_path ( 'hello-world' , '' , 'post' ) ; echo $ mypost ->ID ;
9. Obtener ID de publicaci贸n por URL
Funci贸n muy simple.
$ mypost_id = url_to_postid ( 'https://yanez.pro/wordpress/get-post-id.html' ) ;
10. Obtenga la ID de publicaci贸n que se muestra en la p谩gina principal
Bueno, este ejemplo es solo para el tipo de publicaci贸n page
. Puedes obtener los ID de c贸digo de las p谩ginas Front page y Post page (de la secci贸n Lectura del men煤 Ajustes)
$ frontpage_id = get_option ( 'page_on_front' ) ;
$ blogpage_id = get_option ( 'page_for_posts' ) ;
11. Manera f谩cil de obtener ID de publicaci贸n en un bucle WP_Query
Cuando usa WP_Query u otros bucles adicionales, siempre es mucho mejor y m谩s r谩pido obtener las propiedades del objeto $ post en lugar de usar get_the_id()
o the_id()
funciones.
$mi_custom_query = new WP_Query( 'posts_per_page=10' ); while( $mi_custom_query-have_posts() ) : $mi_custom_query->the_post(); echo $mi_custom_query->post->ID; // muestra post ID endwhile;
12. Obtener ID de publicaci贸n por clave meta
De hecho, hay dos formas de hacerlo: usando WP_Query o MySQL query. Aqu铆 le presentar茅 una funci贸n que devuelve una ID de publicaci贸n o una matriz de ID de publicaci贸n que coinciden con la metaclave dada.
/* * Devuelve ID de publicaci贸n coincidentes para una metaclave de la base de datos * * @param string $meta_key * *@return Array de post ID de publicaci贸n: si m谩s de una publicaci贸n coincide con esta meta clave * @return int ID de publicaci贸n: si solo se encontr贸 una publicaci贸n */ function misha_post_id_by_meta_key( $meta_key ){ global $wpdb; $ids = $wpdb->get_col( $wpdb->prepare( "SELECT post_id FROM $wpdb->postmeta WHERE meta_key = %s", $meta_key ) ); if( count( $ids ) > 1 ) return $ids; // return array else return $ids[0]; // return int }
13. Obtenga ID de publicaci贸n tanto por meta clave como por valor
Es similar a la funci贸n anterior, pero aqu铆 tambi茅n puede especificar un metavalor.
/* * Devuelve ID de publicaciones coincidentes para un par de metaclaves y metavalor de la base de datos * * @param string $meta_key * @param mixed $meta_value * * @return array|int Post ID(s) */ function misha_post_id_by_meta_key_and_value( $meta_key, $meta_value ){ global $wpdb; $ids = $wpdb->get_col( $wpdb->prepare( "SELECT post_id FROM $wpdb->postmeta WHERE meta_key = %s AND meta_value = %s", $meta_key, $meta_value ) ); if( count( $ids ) > 1 ) return $ids; // return array else return $ids[0]; // return int }
14. Obtener ID de publicaci贸n por ID de t茅rmino (ID de categor铆a, ID de etiqueta)
/* * Devuelve ID de publicaciones en un t茅rmino con una ID determinada * * @param int $term_id * * @return array|int Post ID(s) */ function misha_post_id_by_term_id( $term_id ){ global $wpdb; $ids = $wpdb->get_col( $wpdb->prepare( "SELECT object_id FROM $wpdb->term_relationships WHERE term_taxonomy_id = %d", $term_id ) ); if( count( $ids ) > 1 ) return $ids; // return array else return $ids[0]; // return int }
De hecho, utilizando $wpdb
puedes obtener ID de publicaciones por cualquier par谩metro: nombre de categor铆a, fecha de publicaci贸n, n煤mero de comentarios, incluso por correo electr贸nico del autor del comentario ,etc.