如何从slug获取自定义帖子类型帖子ID?

时间:2015-12-03 作者:stlawrance

是否可以仅从slug获取自定义post类型post id?

据我所知,我们可以通过使用标题从id中获得。但是在自定义的帖子类型中可以有相同的标题,所以slug是唯一的,有可能吗???

3 个回复
最合适的回答,由SO网友:TheDeadMedic 整理而成

您可以使用get_page_by_path() - 不要让这个名字欺骗你,第三个参数是post类型:

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

SO网友:Syclone

如果您只需要post id,那么只需一行就可以了。

url_to_postid( site_url(\'the_slug\') );

SO网友:Pieter Goosen

如果您等待几天,然后升级到Wordpress 4.4 将于12月8日发布,您可以使用post_name__in 中的参数WP_Query 它需要一排鼻涕虫

示例

如果需要完整的post对象

$args = [
    \'post_type\'      => \'my_custom_post_type\',
    \'posts_per_page\' => 1,
    \'post_name__in\'  => [\'post-slug\']
];
$q = get_posts( $args );
var_dump( $q );
如果你只需要身份证

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

相关推荐