【发布时间】:2014-02-08 21:28:55
【问题描述】:
我处于需要获取 WP 帖子(自定义帖子类型)的情况,而我拥有的唯一信息是它的 slug。我不知道它是什么自定义帖子类型,只是它是一个cpt。
这可能吗,如果可以,怎么做?
【问题讨论】:
-
我已经更新了我的答案。上一个没用。你能告诉我你想知道关于那个帖子的什么吗?例如,标题、内容等。目前,我的代码会告诉你帖子类型和帖子 ID。
我处于需要获取 WP 帖子(自定义帖子类型)的情况,而我拥有的唯一信息是它的 slug。我不知道它是什么自定义帖子类型,只是它是一个cpt。
这可能吗,如果可以,怎么做?
【问题讨论】:
如果您确定在 WordPress 主题或插件中定义的所有自定义帖子类型,最好使用像 get_page_by_path() 这样的专用函数。它将阻止用户尝试在查询中注入 SQL。
例如:get_page_by_path( 'slug_of_the_post', OBJECT, [ 'list', 'of', 'possible', 'types' ] );
【讨论】:
我知道这是迟到的反应,但我偶然发现了这一点。小心此类查询,因为当您从 url 中获取 slug 时,它很容易被注入 SQL 漏洞。
【讨论】:
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;
}
【讨论】: