我试图显示/隐藏两行文本,具体取决于WooCommerce 类别为空或其中包含任何产品。使用以下命令将这些行插入到文本块中Elementor 我已经分配了CSS #ID 给每一个人,这样我就能控制它。
现在,在我的自定义函数插件中,我想添加一个函数来控制使用css 类型规则:display:none;. 我现在的代码是:
function show_outlet_msg($content){
$term = get_term( 40, \'product_cat\' );
$total_products=$term->count;
if ($total_products>0){
//Have a products
} else {
//No products
}
}
add_filter(\'astra_entry_content_before\',\'show_outlet_msg\');
现在,我想申请,如果门店中有产品,则应隐藏门店中没有产品的文本:
#txt_outlet_zero{
display: none;
}
如果没有产品,请隐藏表示有以下产品的产品:
#txt_outlet_head{
display: none;
}
如何从php代码中应用这些CSS规则?
SO网友:Pat J
您可以连接到wp_enqueue_scripts 和使用wp_add_inline_style():
add_action( \'wp_enqueue_scripts\', \'wpse383179_inline_style\' );
function wpse383179_inline_style() {
$term = get_term( 40, \'product_cat\' );
$total_products=$term->count;
if ($total_products>0){
$css = \'#txt_outlet_zero { display: none; }\';
} else {
$css = \'#txt_outlet_head { display: none; }\';
}
wp_add_inline_style( \'{your-css-id}\', $css );
}
棘手的部分是确定
your-css-id 应该是。您可以查看给定页面的源代码并检查
<link rel="stylesheet" ...> 标签。他们每个人的CSS ID(假设他们已经正确注册并排队等待WordPress)将位于
id 属性,带有
-css 附加到它。所以,如果你看到,例如,
<link rel="stylesheet" id="my-styles-css" src="/path/to/stylesheet.css" />
。。。然后
{your-css-id} 代码段中的位应为
my-styles.
但是,有没有理由为此生成两个不同的CSS ID?永远不会有这样的情况$total_products 为0且大于0。可能有一种更简单的方法,例如,添加一个<div> 并根据产品数量更改其中的内容。