【问题标题】:Wordpress - How to get custom post type by slug?Wordpress - 如何通过 slug 获取自定义帖子类型?
【发布时间】:2014-02-08 21:28:55
【问题描述】:

我处于需要获取 WP 帖子(自定义帖子类型)的情况,而我拥有的唯一信息是它的 slug。我不知道它是什么自定义帖子类型,只是它是一个cpt。

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

【问题讨论】:

  • 我已经更新了我的答案。上一个没用。你能告诉我你想知道关于那个帖子的什么吗?例如,标题、内容等。目前,我的代码会告诉你帖子类型和帖子 ID。

标签: wordpress slug


【解决方案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 漏洞。

    【讨论】:

    • 嗨,欢迎来到 StackOverflow。请不要发布 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;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-01-31
      • 2021-10-01
      • 2014-02-03
      • 2017-02-28
      • 1970-01-01
      • 2015-02-06
      • 2021-12-15
      • 1970-01-01
      相关资源
      最近更新 更多