3

有没有办法total_sales在显示产品时删除自定义字段the_meta

我可以将编辑器中的条目更改为另一个名称和值,但它会神奇地再次出现并且不会被删除。

4

3 回答 3

2

我会为此使用“the_meta_key”过滤器。你有几个选择,当然你可以将它们组合起来。

使用 CSS 控制要隐藏的内容

add_filter( 'the_meta_key' , 'class_custom_fields', 10, 3);

function classes_custom_fields($string, $key, $value){
    return str_replace('<li>','<li class="' . str_replace(' ', '-', $key). '">',$string);
}

<style>
ul.post-meta li.total_sales{
    display:none;
}
</style>

通过 PHP 和 CSS 控制要隐藏的内容

add_filter( 'the_meta_key' , 'hide_custom_fields', 10, 3);

function hide_custom_fields($string, $key, $value){
    $hide_keys = array(
        'total_sales'
    );
    if(in_array(strtolower($key), $hide_keys)){
        return str_replace('<li>','<li class="hide">',$string);
    }
    return $string;
}
<style>
    .hide{
        display:none;
    }
</style>

使用 PHP 控制要显示的内容

add_filter( 'the_meta_key' , 'allowed_custom_fields', 10, 3);

function allowed_custom_fields($string, $key, $value){

    $allowed_keys = array(
        'attribute one',
    );

    if(in_array(strtolower($key), $allowed_keys)){
        return $string;
    }
}

使用 PHP 控制不显示的内容

add_filter( 'the_meta_key' , 'disallowed_custom_fields', 10, 3);


function disallowed_custom_fields($string, $key, $value){

    $disallowed_keys = array(
        'total_sales'
    );
    if(!in_array(strtolower($key), $disallowed_keys)){
        return $string;
    }
}
于 2016-02-24T11:17:13.243 回答
-1

由于total_sales最终作为其ul组的最后一个列表项(在本例中ul.post-meta),只需输入:ul.post-meta li:last-child{ display: none; }

于 2013-08-15T23:55:24.850 回答
-2

更好的选择是将其添加到您的 functions.php 文件中:

// Hide total sales for Woocommerce products
delete_post_meta_by_key( 'total_sales' );
于 2013-12-23T14:44:24.307 回答