如果您正在使用in_category
正确地说,根据我的注释修改的代码应该可以工作。那就是。。。
if (in_category($ct_portfoliocatid)) :
include (TEMPLATEPATH . \'/portfolio.php\');
else :
endif;
你不需要所有这些杂乱无章的开始和结束PHP标记,所以我删除了它们,我不知道为什么你有一个
else
完全
From the Codex for in_category
:
测试当前职位(或任何指定职位)是否分配给任何指定类别。
in\\u category()只考虑帖子直接分配到的类别(写入/编辑帖子面板中选中的类别),而不考虑所分配类别的父类别(但请参阅下面的测试帖子是否在子类别中)。
此标记可用于在单个post请求期间测试循环内或(自版本2.7起)循环外的当前post。如果指定要测试的帖子,可以在任何地方使用它。
因此,如果该代码在循环中(您没有提供第二个参数,因此它默认为循环中的当前帖子),并且如果类别直接分配给帖子,而不是分配给帖子的类别的父类别,那么该代码应该可以工作,并且在我尝试时也可以工作。当然$ct_portfoliocatid
也必须正确设置,我无法知道是否正确。
同样,您的原始代码被严重破坏,但另一个问题可能是您没有正确使用该函数。