问题描述
是否可以抓住自定义帖子类型的帖子 id 只是从 s lug?
我知道我们可以通过使用标题从 id 获得。但是在一个自定义的帖子类型中可以有相同的标题,因为 lug s 是独一无二的可能吗?
最佳解决方案
你可以使用 get_page_by_path()
– 不要让名字愚弄你,第三个参数是帖子类型:
if ( $post = get_page_by_path( 'the_slug', OBJECT, 'post_type' ) )
$id = $post->ID;
else
$id = 0;
次佳解决方案
如果您等待几天,并升级到 12 月 8 日发布的 WordPress 4.4(AFAIK),您可以在 WP_Query
中使用新的 post_name__in
参数,该参数需要一系列的 s s
例子
如果您需要完整的 post 对象
$args = [
'post_type' => 'my_custom_post_type',
'posts_per_page' => 1,
'post_name__in' => ['post-slug']
];
$q = get_posts( $args );
var_dump( $q );
如果你只需要 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 );
参考文献
注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。