从“查询”URL中检索帖子ID

时间:2016-09-13 作者:J0hj0h

免责声明:我不能发布超过两个链接,但

我知道有很多类似的问题,但没有一个解决方案适合我。

我的问题是,使用Live Composer插件(wordpress.org/plugins/Live Composer page builder/)时url_to_postid() 函数不会为Live Composer的自定义帖子类型返回帖子id,例如“Partners”、“Project”、“Staff”。默认情况下,名为“Testproject”的项目的永久链接URL的格式为http://localhost/wordpress/?dslc_projects=testproject. 此问题无法通过解决url_to_postid() 输入有效的帖子ID。

解决方法是将永久链接结构设置为默认的“普通”设置以外的其他设置。然后url_to_postid() 事实上,即使LC的自定义post类型也能正确解析。

但是,我不相信用户会记住此解决方法。见鬼,我甚至都不相信自己。因此,我想知道,是否有办法解决上述URL的类型。

我是WordPress的新手,因此我还没有直接处理数据库,没有实现自定义分类法,也没有提供自定义重写规则。我甚至不知道URL的类型http://localhost/wordpress/?dslc_projects=testproject 调用,但在我看来,它似乎会在数据库中引发一个查询,以匹配dslc_projects 把某事归因于某人testproject.
我想知道这种类型的URL是否有名称,这样我就可以在谷歌上搜索并了解它。此外,如果有人知道如何使用这些URL获取帖子ID,那就更可怕了。:)

<小时>Edit: 我现在可能在url_to_postid(). 函数在点击following if-clause :

// Check to see if we are using rewrite rules
    $rewrite = $wp_rewrite->wp_rewrite_rules();

// Not using rewrite rules, and \'p=N\' and \'page_id=N\' methods failed, so we\'re out of options
if ( empty($rewrite) )
    return 0;
我假设这是一个bug,因为显然可以在自定义post类型URL上重写规则,应该在这里检测到。

报告为票证#38041.

1 个回复
SO网友:Vivek Tamrakar

Try This Code

 $latest = new WP_Query( array (
    \'post_type\'    =>\'your-post-type-name\',
    \'post_status\'  =>\'publish\',
    \'orderby\'               => \'rand\',
    \'posts_per_page\'        => 3
    ));

    while ( $latest -> have_posts() ) : $latest -> the_post();
    echo the_ID();
    endwhile;

相关推荐

如何获取`COMMENT_POST_ID`?

我已经提取了回复电子邮件。原始电子邮件保存为CPT,并在我的插件中作为票据使用。我希望回复邮件作为对原始邮件的评论。 for($j = 1; $j <= $total; $j++){ $mail = $emails->get($j); //This checks if the email is reply or not and if the email is reply make it comment to its original post.