首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

WordPress无法使用pre_get_posts将自定义帖子类型添加到查询中

WordPress是一种流行的开源内容管理系统(CMS),它提供了一个简单易用的平台来创建和管理网站。pre_get_posts是WordPress的一个钩子函数,用于修改查询对象的参数,以自定义查询结果。

对于无法使用pre_get_posts将自定义帖子类型添加到查询中的问题,可能有以下几个原因:

  1. 自定义帖子类型未正确注册:在WordPress中,需要使用register_post_type函数来注册自定义帖子类型。确保正确地注册了自定义帖子类型,并且设置了正确的参数,包括查询参数。
  2. 钩子函数未正确添加:pre_get_posts是一个钩子函数,需要将其添加到正确的位置才能生效。通常,可以将其添加到主题的functions.php文件中,或者使用自定义插件来添加。
  3. 查询参数设置错误:在pre_get_posts函数中,需要设置正确的查询参数来包含自定义帖子类型。例如,可以使用post_type参数来指定要查询的帖子类型。

解决这个问题的方法如下:

  1. 确保已正确注册自定义帖子类型。可以参考WordPress官方文档中的register_post_type函数来了解如何正确注册自定义帖子类型。
  2. 在主题的functions.php文件中添加以下代码来使用pre_get_posts函数并设置正确的查询参数:
代码语言:php
复制
function custom_post_type_query($query) {
    if ( !is_admin() && $query->is_main_query() ) {
        if ( $query->is_home() || $query->is_archive() ) {
            $query->set( 'post_type', array( 'post', 'your_custom_post_type' ) );
        }
    }
}
add_action( 'pre_get_posts', 'custom_post_type_query' );

上述代码将自定义帖子类型添加到首页和存档页面的查询中。

  1. 保存并刷新网站,然后检查查询结果是否包含了自定义帖子类型。

腾讯云提供了一系列与WordPress相关的产品和服务,包括云服务器、云数据库、云存储等。您可以访问腾讯云官方网站(https://cloud.tencent.com/)了解更多详情和产品介绍。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • WordPress过滤首页部分文章

    我其实一直挺困扰《每周歌词》的展示问题。原本这个栏目是我高中时期为了做站点SEO,保证博客能按时更新设定的。所以这个系列一开始都更新的很潦草,甚至大部分是在返校路上写出来的,完全没有质量可言。但是现在我已经有充足的时间更新博客虽然我也不更新,所以也越来越重视《每周歌词》的质量。如今的《每周歌词》已经逐渐变成我个人对某首歌曲和它歌词的感悟了。但是原先存在着的大量《每周歌词》非常占用首页空间,让技术相关的文章都难以找寻,这就违背了这个博客的初衷了。我曾经也尝试了很多种办法以解决,比如单独开子博客(因为数据太难迁移放弃),还有写一篇专门用来推荐的文章索引(因为懒得更新放弃),但是这些办法都不尽如人意。

    01

    我又搬博客了 — 和WordPress那些不得不说的事

    原来的博客系统使用的是Typecho,一个轻量、高效、快速的博客系统(至今也是)。但是Typecho的正式版已经很久没有更新,其中部分功能甚至无法兼容PHP 7;开发版虽然仍在坚持更新,但是也容易与各种过老的插件和主题产生兼容问题,并且社区的活跃度也略低,开发兴趣不高,最终导致的结果就是插件和主题不够多,功能实现全靠自己写的情况。而现在将全站迁移至WordPress也是无奈之举,一方面是更好的生态,意味着更多插件和主题选择,减少了重复造轮子魔改程序的情况,另一方面是WordPress有更频繁的更新频率,漏洞和Bug能更快得到修补。(等啥时候Typecho重出江湖我就换回来?)

    02
    领券