显示特定类别的single.php的代码也覆盖了普通的single.php

时间:2015-04-27 作者:MLC

我目前正在建立的网站上有两种不同的帖子类型——“press”和“blog”。我使用了以下代码,插入到我的子主题函数中。php文件,以获取使用“single press.php”模板的“press”帖子:

add_filter( \'single_template\', function ( $single_template ) {

$parent     = \'7\'; 
$categories = get_categories( \'child_of=\' . $parent );
$cat_names  = wp_list_pluck( $categories, \'name\' );

if ( has_category( \'press\' ) || has_category( $cat_names ) ) {
    $single_template = dirname( __FILE__ ) . \'/single-press.php\';
}
return $single_template;

}, PHP_INT_MAX, 2 );
这确实有效,但我现在遇到的问题是,“博客”帖子(id为“6”,应该只使用single.php模板)也使用了这个特定于类别的模板。我尝试了很多不同的方法来纠正它,但到目前为止还没有任何运气,所以我想我应该在这里发帖,看看有没有人有什么想法。我的PHP技能不是很好,所以如果这只是我犯的一个基本错误的结果,我提前道歉,我没有抓住这个错误。非常感谢!

1 个回复
SO网友:Sladix

您不必在函数中设置该代码。php。

按一下命名文件。如果您在声明自定义post类型时对其进行了很好的命名,那么php应该做到这一点。帖子类型应继续使用single。php。

我这不工作,请提供可湿性粉剂版本和自定义后类型声明。

结束

相关推荐

Blog post - single.php url

我有一个简单的博客页面,只在一个名为“新闻”的页面上列出博客帖子http://my-site.co.uk/news我有一张单人床。点击“新闻”时显示实际帖子的php页面单曲。php显示帖子,但url为http://my-site.co.uk/the-post-title.这是正常的还是应该的http://my-site.co.uk/news/the-post-title我怎么会这样http://my-site.co.uk/news/the-post-title