Wordpress - 如何通过 slug 获取自定义帖子类型?
Posted
技术标签:
【中文标题】Wordpress - 如何通过 slug 获取自定义帖子类型?【英文标题】:Wordpress - How to get custom post type by slug? 【发布时间】:2014-02-08 21:28:55 【问题描述】:我处于需要获取 WP 帖子(自定义帖子类型)的情况,而我拥有的唯一信息是它的 slug。我不知道它是什么自定义帖子类型,只是它是一个cpt。
这可能吗,如果可以,怎么做?
【问题讨论】:
我已经更新了我的答案。上一个没用。你能告诉我你想知道关于那个帖子的什么吗?例如,标题、内容等。目前,我的代码会告诉你帖子类型和帖子 ID。 【参考方案1】:如果您确定在 WordPress 主题或插件中定义的所有自定义帖子类型,最好使用像 get_page_by_path()
这样的专用函数。它将阻止用户尝试在查询中注入 SQL。
例如:get_page_by_path( 'slug_of_the_post', OBJECT, [ 'list', 'of', 'possible', 'types' ] );
见code reference of the function。
【讨论】:
【参考方案2】:我知道这是迟到的反应,但我偶然发现了这一点。小心此类查询,因为当您从 url 中获取 slug 时,它很容易被注入 SQL 漏洞。
【讨论】:
嗨,欢迎来到 ***。请不要发布 cmets 作为答案。参与该网站,很快您将获得足够的声誉来发布 cmets。谢谢。【参考方案3】: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;
【讨论】:
以上是关于Wordpress - 如何通过 slug 获取自定义帖子类型?的主要内容,如果未能解决你的问题,请参考以下文章