Wordpress - 如何通过slug获得自定义帖子类型?

时间:2014-01-19 19:41:16

标签: wordpress slug

我处在需要获得WP帖子(自定义帖子类型)的情况下,我所拥有的唯一信息就是它的slu ..我不知道它是什么样的自定义帖子类型,只是它是一个cpt。

这可能吗,如果可以,怎么做?

3 个答案:

答案 0 :(得分:2)

global $wpdb;
$the_slug = 'post-slug-here'; // <-- edit it
$myrows = $wpdb->get_results( "SELECT post_name, post_type, ID FROM wp_posts WHERE post_name = '". $the_slug ."'" );
foreach ( $myrows as $myrow ) 
{
    echo 'Post Type: ' . $myrow->post_type . ' Post ID: ' . $myrow->ID;
}

答案 1 :(得分:1)

我知道这是一个迟到的反应,但我偶然发现了这一点。小心这样的查询,因为它可以轻松地注入SQL漏洞,你可以从网址中获取slug。

答案 2 :(得分:0)

如果您确定知道在WordPress主题或插件中定义的所有自定义帖子类型,则最好使用get_page_by_path()之类的专用功能。这样可以防止用户尝试在查询中插入SQL。

例如:
get_page_by_path( 'slug_of_the_post', OBJECT, [ 'list', 'of', 'possible', 'types' ] );

请参见code reference of the function