¿Cómo obtener una ID de publicación de tipo de publicación personalizada de slug?

17

¿Es posible capturar el tipo de publicación personalizada post id solo de Slug?

Por lo que sé, podemos obtenerlo desde ID utilizando el título. Pero puede haber el mismo título en un tipo de publicación personalizada, por lo que las babosas son únicas, ¿es posible?

    
pregunta stlawrance 03.12.2015 - 11:00

3 respuestas

32

Puedes usar get_page_by_path() . No dejes que el nombre te engañe. El tercer argumento es el tipo de publicación:

if ( $post = get_page_by_path( 'the_slug', OBJECT, 'post_type' ) )
    $id = $post->ID;
else
    $id = 0;
    
respondido por el TheDeadMedic 03.12.2015 - 11:51
6

Si espera un par de días y actualiza a Wordpress 4.4 , que se lanzará el 8 de diciembre (< em> AFAIK ), puede usar el nuevo parámetro post_name__in en WP_Query que toma una variedad de slugs

EJEMPLO

Si necesita el objeto post completo

$args = [
    'post_type'      => 'my_custom_post_type',
    'posts_per_page' => 1,
    'post_name__in'  => ['post-slug']
];
$q = get_posts( $args );
var_dump( $q );

Si solo necesitas el ID

$args = [
    'post_type'      => 'my_custom_post_type',
    'posts_per_page' => 1,
    'post_name__in'  => ['post-slug'],
    'fields'         => 'ids' 
];
$q = get_posts( $args );
var_dump( $q );
    
respondido por el Pieter Goosen 03.12.2015 - 11:59
3

Si solo quieres la ID de publicación, esto hará el truco en una línea.

url_to_postid( site_url('the_slug') );
    
respondido por el Syclone 03.11.2017 - 23:31

Lea otras preguntas en las etiquetas