当前位置: 首页 > 知识库问答 >
问题:

Wordpress is_home()函数为多个post类型查询返回假阳性

阴培
2023-03-14

我在与Wordpress的逻辑缺陷作斗争,但不管它是否存在,我需要一个解决方案。我不得不修改我当前的设置,修改几乎所有的查询,使之包含两种帖子类型,而不是一种。

现在,我的查询工作正常,但缺少很多功能,因为is_home()在我的存档页上返回1而不是0。根据它的文档,这个函数在我的博客页面上应该只有1

* If a static page is set for the front page of the site, this function will return true only
* on the page you set as the "Posts page".

事实上,它返回true,尽管我与我的“博文页面”(即博客)处于不同的存档中。如果该存档的查询只包含一个post类型,is\u home()返回0。如果我向查询中添加另一个帖子类型(这对我来说是必需的)is\u home()返回true

问题出在Wordpress内核中的query.php文件中<如果查询对象中的is\u archivefalse,则code>is\u home()返回true。但是在我的例子中应该是正确的(事实并非如此)<如果is\u post\u type\u archive为真(事实并非如此),则code>is\u archive将为真。

这就是问题所在:is\u post\u type\u archive仅在以下情况下由Wordpress设置为true

1)post_type不是数组

2) 查询中的has\u archive的post\u type objects值为true

这两个条件都不适用于我,因为1)post_类型是一个数组,因此我希望2)post类型数组没有一个post类型对象,因此has_archive不能为true。

长话短说:我有一个存档页面,上面有来自不同post_types的帖子,它确实有效,但是这些条目不是我的博客页面,因此,根据文档,is_home应该仍然是假的。

两个问题:1)这是is_home()的预期行为吗?2)是否有另一个函数可以替代该函数并可用于我的多帖子类型查询?(如果没有,对如何实现这一目标有何建议?)

提前感谢你的想法。

共有1个答案

周锐
2023-03-14

郑重声明(如果有人偶然发现这个线程有类似的问题):我通过检查get_post_type() == 'post'而不是is_home()来解决这个问题——仍然不令人满意。文档说is_home()只会在帖子页面上导致true,显然不会。

 类似资料:
  • 问题内容: 我有几个查询,下面详述。我希望能够运行一个同时返回两个计数的SQL查询,这可能吗? 1。 2。 到目前为止,我仅在搜索中找到MSSQL特定的解决方案。 问题答案: 如果您单行需要它们: (无论如何,Thilo的GROUP BY方法都是更好的通用解决方案。) 编辑: 我已经删除了。我已经忘记了为什么我从不使用它。

  • 问题内容: 桌子: 我的查询: 我收到“ MySQL子查询返回多个行”错误。 我知道此查询可以使用以下查询的解决方法: 然后使用php循环遍历结果并执行以下查询以获取和回显它: 但是我认为可能会有更好的解决方案? 问题答案: 简单的解决方法是在子查询中添加一个子句: 一个更好的选择(就性能而言)是使用联接:

  • 我正在尝试将预言机结果列表绑定到摘要列表。但是我的摘要列表有3个类被定义为DB的实体 我有三个实体类A,B,C 我使用以下查询获得结果,但结果无法转换为摘要对象 调试:我确保结果列表不为空,如果我不将其转换为对象,下面的查询可以正常工作 我看到的第一种方法是遍历summaryList,并像这样将它们分配给单个列表,我还没有测试过这种方法,但我认为它可能会给出一个类强制转换异常,因为强制转换以前也有

  • 问题内容: 也许这是一个愚蠢的问题,但是有没有办法找到所有返回特定类型的函数(在标准库或GOPATH中)? 例如,有许多函数使用io.Writer作为参数。现在,我想知道如何创建io.Writer,并且有很多方法可以做到这一点。但是,如何能轻松地找到所有方法而又无需猜测软件包并仔细查看所有方法以找到返回io.Writer(或我追随的其他任何类型)的方法? 编辑: 我应该扩展我的问题,以查找实现特定

  • 问题内容: 我想知道以下内容: 如何从数据库中的多个表中获取数据? 有哪些类型的方法可以做到这一点? 什么是联接和工会,它们之间有何不同? 什么时候应该使用每个与其他比较? 我打算在我的应用程序(例如,PHP)中使用此功能,但是不想对数据库运行多个查询,我需要在单个查询中从多个表中获取数据的哪些选项? 注意:我正在写这篇文章是因为我希望能够链接到有关我在PHP队列中不断遇到的众多问题的书面指南,因

  • 问题内容: 我有一个数据库,正在运行以下查询: 上面的查询一次返回两个结果集,我不能分别触发两个查询。如何在Java类中一次处理两个结果集? 问题答案: 正确的代码来处理JDBC语句返回的多个: 重要位: 并返回以表明语句的结果只是一个数字,而不是一个。 您需要检查以了解是否还有更多结果。 确保关闭结果集或使用