正如@cjbj在评论中指出的,这可能是一个时间问题。这意味着与其直接将代码添加到functions.php
您需要将其包装在回调函数中,并将其附加到以后的触发操作。WordPress、主题和插件,loads 和does 事情按一定的顺序进行。因此,需要为一些代码添加操作,以使其正确。
就我个人而言,我通常会补充body_class
过滤,如果它依赖于某些数据template_redirect
(在确定加载哪个模板之前激发)操作,以确保代码具有确定如何过滤类所需的所有数据。
// Hook anonymous callback to template_redirect action
add_action(
\'template_redirect\',
function(){
// Get data
$cart_items = wcs_cart_contains_renewal();
// Check for truthy condition
if ( $cart_items ) {
// Hook anonymous callback to body_class filter
add_filter(
\'body_class\',
function( $classes ) {
// Add additional class
$classes[] = \'renewal-order\';
return $classes;
}
);
}
}
);
如果愿意,可以使用命名回调而不是匿名回调