it-swarm.com.de

Wie bekomme ich eine eigene Beitragstyp-Beitrags-ID von slug?

Ist es möglich, den benutzerdefinierten Beitragstyp Beitrags-ID nur von Schnecke zu greifen?

Soweit ich weiß, können wir mit title von id abrufen. Aber es kann den gleichen Titel in einem benutzerdefinierten Beitragstyp geben, so dass die Slugs eindeutig sind. Ist das möglich?

18
stlawrance

Sie können get_page_by_path() - verwenden, lassen Sie sich nicht vom Namen täuschen, das dritte Argument ist der Beitragstyp:

if ( $post = get_page_by_path( 'the_slug', OBJECT, 'post_type' ) )
    $id = $post->ID;
else
    $id = 0;
38
TheDeadMedic

Wenn Sie ein paar Tage warten und ein Upgrade auf Wordpress 4.4 durchführen, das am 8. Dezember veröffentlicht wird (AFAIK), können Sie den neuen Parameter post_name__in in WP_Query verwenden, der ein Array annimmt von Schnecken

BEISPIEL

Wenn Sie das komplette Beitragsobjekt benötigen

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

Wenn Sie nur die ID benötigen

$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 );
7
Pieter Goosen

Wenn Sie nur die Beitrags-ID möchten, erledigt dies den Trick in einer Zeile.

url_to_postid( site_url('the_slug') );
5
Syclone