问题描述
我有一个自定义帖子模板 (single.PHP),在正常情况下访问文章时可以正常工作:
domain.com/news/article-1/
但是当我在一个虚拟新闻页面(基于另一个查询)加载 single.PHP 时,我在检查 have_posts() 时总是出错。例如:
domain.com/category/news/article-2/
routing.PHP (这包含在functions.PHP中)
/**
* News item page
*/
if ($category_key && $news_key && count($a_current_url) - $news_key == 3):
$news_slug = $a_current_url[$news_key + 1];
add_action('template_redirect','override404',0);
add_filter('template_include',function () {
get_template_part('single');
});
endif;
在这段代码中,我检查是否需要包含单个模板的特定新闻页面。我还设置了全局 $news_slug 变量。
single.PHP
因此,由于 has_posts 始终为空,因为 404 没有加载任何帖子,因此我需要自己加载:
if (!have_posts()):
$args = [
'name' => $news_slug,'post_type' => 'post','post_status' => 'publish','numberposts' => 1,'suppress_filters' => 0,];
$post = get_posts($args);
setup_postdata($post[0]->ID);
endif;
但无论我尝试什么,have_posts() 仍然是错误的。
我在这里做错了什么?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)