Use CSS tag inside PHP code

时间:2021-02-10 作者:lk2_89

我试图显示/隐藏两行文本,具体取决于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规则?

2 个回复
SO网友:Talita Mota

我不确定是否可以在过滤器中添加样式。我在wp\\U head action中测试了以下代码,效果很好:

function show_outlet_msg(){
    $term = get_term( 40, \'product_cat\' );
    $total_products=$term->count;
    if ($total_products>0){
        $html = \'<style> #txt_outlet_zero{ display: none; } </style>\';
    } else {
        $html = \'<style> #txt_outlet_head{ display: none; } </style>\';
    }
    echo $html;
}

add_action(\'wp_head\',\'show_outlet_msg\');

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> 并根据产品数量更改其中的内容。

相关推荐

/wp-admin/admin-ajax.php错误500

我有一个Wordpress 4.9.16网站,在管理界面中执行许多操作时会抛出错误500s。当我尝试添加一个新类别时,前端什么也没有发生,我的web检查器显示错误。我尝试过:重命名我的。htaccess文件并让WP重建一个新文件,增加Wordpress内存限制,增加PHP内存限制,禁用所有插件,在WP admin和WP includes中重新上载核心文件,并且在执行这些步骤后,我在尝试添加类别时仍会遇到admin ajax错误500。我的下一步是将我的主题更改为5.6当前版本</我有几个问题,但基本