我想更改单个的css样式。php,属于基于类别的自定义分类法。我在分类学上做到了这一点。php的一些类别,但我不能使它在一个单一的工作。php。用于分类。我使用的phpis_tax
工作正常。对于单身。我使用的phphas_term
但什么都没有。
我做错了什么?两个文件的完整代码都是here 和here
非常感谢。
这是分类法。php,一切都很好。
<?php get_header(); ?>
<div class="non-home-parallax product-listing-parallax" style="
<?php if( is_tax (\'product-cat\', \'fama-advance\') ) { ?>
background-image:url(\'<?php echo get_template_directory_uri(); ?>/img/parallax/advance.jpg\');
<?php }
elseif ( is_tax (\'product-cat\', \'fama-premium\') ) { ?>
background-image:url(\'<?php echo get_template_directory_uri(); ?>/img/parallax/premium.jpg\');
<?php }
elseif ( is_tax (\'product-cat\', \'fama-confectionary-solutions\') ) { ?>
background-image:url(\'<?php echo get_template_directory_uri(); ?>/img/parallax/confectionary.jpg\');
<?php }
elseif ( is_tax (\'product-cat\', \'fama-powder-solutions\') ) { ?>
background-image:url(\'<?php echo get_template_directory_uri(); ?>/img/parallax/powder.jpg\');
<?php }
elseif ( is_tax (\'product-cat\', \'fama-improvers\') ) { ?>
background-image:url(\'<?php echo get_template_directory_uri(); ?>/img/parallax/improvers.jpg\');
<?php }
elseif ( is_tax (\'product-cat\', \'fama-chocoday-creams\') ) { ?>
background-image:url(\'<?php echo get_template_directory_uri(); ?>/img/parallax/chocodaycreams.jpg\');
<?php }
elseif ( is_tax (\'product-cat\', \'fama-choco-day\') ) { ?>
background-image:url(\'<?php echo get_template_directory_uri(); ?>/img/parallax/chocoday.jpg\');
<?php }
elseif ( is_tax (\'product-cat\', \'fama-deliciozo\') ) { ?>
background-image:url(\'<?php echo get_template_directory_uri(); ?>/img/parallax/deliciozo.jpg\');
<?php }
elseif ( is_tax (\'product-cat\', \'fama-frutopia\') ) { ?>
background-image:url(\'<?php echo get_template_directory_uri(); ?>/img/parallax/frutopia.jpg\');
<?php }
elseif ( is_tax (\'product-cat\', \'fama-fruigel\') ) { ?>
background-image:url(\'<?php echo get_template_directory_uri(); ?>/img/parallax/fruigel.jpg\');
<?php }
elseif ( is_tax (\'product-cat\', \'fama-creams\') ) { ?>
background-image:url(\'<?php echo get_template_directory_uri(); ?>/img/parallax/creams.jpg\');
<?php }
elseif ( is_tax (\'product-cat\', \'fama-ice\') ) { ?>
background-image:url(\'<?php echo get_template_directory_uri(); ?>/img/parallax/ice.jpg\');
<?php }
else { ?> <?php } ?> ">
<div class="container-12">
<div class="col-12">
<h4 style="
<?php if( is_tax (\'product-cat\', \'fama-advance\') ) { ?>
background-color: #ff9900;
<?php }
elseif ( is_tax (\'product-cat\', \'fama-premium\') ) { ?>
background-color: #004A93;
<?php }
elseif ( is_tax (\'product-cat\', \'fama-confectionary-solutions\') ) { ?>
background-color: #E7C388;
<?php }
elseif ( is_tax (\'product-cat\', \'fama-powder-solutions\') ) { ?>
background-color: #FFED3D;
<?php }
elseif ( is_tax (\'product-cat\', \'fama-improvers\') ) { ?>
background-color: #FDBA2F;
<?php }
elseif ( is_tax (\'product-cat\', \'fama-chocoday-creams\') ) { ?>
background-color: #693A18;
<?php }
elseif ( is_tax (\'product-cat\', \'fama-choco-day\') ) { ?>
background-color: #3B210D;
<?php }
elseif ( is_tax (\'product-cat\', \'fama-deliciozo\') ) { ?>
background-color: #DB0070;
<?php }
elseif ( is_tax (\'product-cat\', \'fama-frutopia\') ) { ?>
background-color: #98005D;
<?php }
elseif ( is_tax (\'product-cat\', \'fama-fruigel\') ) { ?>
background-color: #BB001C;
<?php }
elseif ( is_tax (\'product-cat\', \'fama-creams\') ) { ?>
background-color: #96C031;
<?php }
elseif ( is_tax (\'product-cat\', \'fama-ice\') ) { ?>
background-color: #9FDAF1;
<?php }
else { ?> <?php } ?> ">
<?php $term = get_term_by( \'slug\', get_query_var( \'term\' ), get_query_var( \'taxonomy\' ) ); echo $term->name; ?></h4>
</div>
</div>
这是单曲的一些代码。php
<?php get_header(); ?>
<div class="non-home-parallax product-listing-parallax" style="
<?php if( has_term (\'fama-advance\', \'product-cat\') ) { ?>
background-image:url(\'<?php echo get_template_directory_uri(); ?>/img/parallax/advance.jpg\');
<?php }
elseif ( has_term (\'fama-confectionary-solutions\', \'product-cat\') ) { ?>
background-image:url(\'<?php echo get_template_directory_uri(); ?>/img/parallax/premium.jpg\');
<?php }
elseif ( has_term (\'fama-premium\', \'product-cat\') ) { ?>
background-image:url(\'<?php echo get_template_directory_uri(); ?>/img/parallax/confectionary.jpg\');
<?php }
else { ?> <?php } ?> ">
最合适的回答,由SO网友:cybmeta 整理而成
has_term
必须在循环内使用。如果在循环外使用它,则必须传递要检查的post ID或post对象。
在单曲中。php文件将代码放入循环中以检查当前帖子:
<?php get_header();
while(have_post) {
the_post();
?>
<div class="non-home-parallax product-listing-parallax" style="
<?php if( has_term (\'fama-advance\', \'product-cat\') ) { ?>
background-image:url(\'<?php echo get_template_directory_uri(); ?>/img/parallax/advance.jpg\');
<?php } elseif ( has_term (\'fama-confectionary-solutions\', \'product-cat\') ) { ?>
background-image:url(\'<?php echo get_template_directory_uri(); ?>/img/parallax/premium.jpg\');
<?php } elseif ( has_term (\'fama-premium\', \'product-cat\') ) { ?>
background-image:url(\'<?php echo get_template_directory_uri(); ?>/img/parallax/confectionary.jpg\');
<?php } else { ?> <?php } ?> ">
The rest of you code
<?pphp } //end while
get_footer(); ?>
此外,我建议您添加一个不同的
class
而不是一个不同的
style
属性并将样式放入CSS文件中。此外,最好定义一个返回类的函数,而不是在模板文件中定义一组丑陋的if-else语句。更好的是,使用
post_class 功能在您的邮件容器中。此函数返回一个类字符串,您可以根据自定义分类法对其进行筛选以包含类。
在单曲中。php模板文件:
<?php get_header();
while(have_post) {
the_post();
?>
<div id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
The rest of you code
</div>
<?pphp } //end while
get_footer(); ?>
在函数中。php文件:
// add product-cat in post class
add_filter( \'post_class\', \'product_cat_class\' );
function product_cat_class( $classes ) {
global $post;
$product_cats = get_the_terms( $post->ID, \'product-cat\' );
foreach ( $product_cats as $product_cat ) {
$classes[] = $product_cat->slug;
}
return $classes;
}
在CSS中,例如:
.fama-advance {
background-image: url(\'img/parallax/advance.jpg\');
}