我试图检查一篇文章是否属于类别X、Y、Z(包括其中的子类别)。
这是我在单曲中尝试过的一段代码。php:
if ( in_category(array( \'1\', \'2\', \'3\', ) ) {
echo "This post is in the selected categories or their subcategories";
}
else {
echo "this post inst in the categories or the subs.";
}
我还尝试使用post\\u is\\u in\\u descendant\\u类别(包括代码上方的codex中的函数),但它仍然不会显示true。包括函数这是我在测试2上使用的代码#:
if ( in_category(array( \'1\', \'2\', \'3\', ) ) || post_is_in_descendant_category( array( \'1\', \'2\', \'3\', ) ) ) {
echo "This post is in the selected categories or their subcategories";
}
else {
echo "this post inst in the categories or the subs.";
}
SO网友:cybmeta
post_is_in_descendant_category
不是WP函数。如果你不定义它,它就不存在。我想你已经阅读了in_category()
功能和已采取post_is_in_descendant_category
from the example 没有完全阅读。将此代码添加到函数。php或插件:
if ( ! function_exists( \'post_is_in_descendant_category\' ) ) {
function post_is_in_descendant_category( $cats, $_post = null ) {
foreach ( (array) $cats as $cat ) {
// get_term_children() accepts integer ID only
$descendants = get_term_children( (int) $cat, \'category\' );
if ( $descendants && in_category( $descendants, $_post ) )
return true;
}
return false;
}
}
现在
post_is_in_descendant_category()
已定义,您可以使用它。记住使用
in_category()
或
post_is_in_descendant_category()
在循环内部,如果没有,则需要传递post ID或对象以进行检查。
注意:您正在使用array( \'1\', \'2\', \'3\', )
. 数组中的值是字符串;我想你指的是ID为1、2和3的类别。要传递cateogories ID,必须将值作为整数传递:array( 1, 2, 3 )
. 还要注意的是post_is_in_descendant_category
仅接受类别ID作为整数值。