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 ( 'http://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.