C贸mo obtener ID de publicaci贸n en WordPress

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 $postcontiene 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 ( pagepor 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()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 $wpdbpuedes 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.