我试图遵循相同的代码,看看是否可以得到相同的结果,我注意到的是\\u page()没有按预期工作。因此,我遵循全局变量$post并检查类别名称/slug,后者使用简单的文本比较来决定操作。
global $post;
$postcat = get_the_category( $post->ID );
if ( ! empty( $postcat ) ) {
echo esc_html( $postcat[0]->ID ); // Debug
echo esc_html( $postcat[1]->name ); // Debug
echo var_dump($postcat ); // Debug
}
如果类别只有一个类别(不是子类别),则其值为
echo esc_html( $postcat[0]->name ); //Display name on screen
对于子类别,您将填写以下变量
echo esc_html( $postcat[1]->name ); //Display name on screen
现在,根据您的需要,使用下面的代码,就像我用来检查子类别名称一样:
//Use $postcat[0]->name for parent category name Can be your sub category name
if ( $postcat[1]->name == \'Shopping\' ) {
wp_enqueue_style( \'stylesheet_name\' );
}else{
// other code
}
完整代码:
function wpse39130_register_more_stylesheets() {
wp_register_style( \'stylesheet_name\', get_stylesheet_directory_uri() . \'/whatsqshop.css\' );
}
add_action( \'init\', \'wpse39130_register_more_stylesheets\' );
function wpse39130_conditionally_enqueue_my_stylesheet() {
// only enqueue on product-services page slug
global $post; //GLobal Post variable
$postcat = get_the_category( $post->ID ); // Get the Category info from POST ID
if ( ! empty( $postcat ) ) { // IF POST CATEGORY IS NOT EMPTY
// echo esc_html( $postcat[0]->slug ); //Display SLUG On output screen <Debug option>
//echo esc_html( $postcat[0]->name ); //Display name on screen
//echo esc_html( $postcat[1]->name ); //Display name on screen
//echo var_dump($postcat ); // For debug
}
// if( is_single(88)) {
if ( $postcat[1]->name == \'Shopping\' ) {
wp_enqueue_style( \'stylesheet_name\' );
}else{
//wp_enqueue_style( \'stylesheet_name\' );
}
}
add_action( \'wp_enqueue_scripts\', \'wpse39130_conditionally_enqueue_my_stylesheet\' );
示例:*无额外CSS
http://whatsq.com/category/gst16/ *仅具有上述类别背景的额外CSShttp://whatsq.com/information-technology/shopping-information-technology/mothers-day-gift-plan-show-mom-the-love-with-flowers-and-and-more/