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 に答える
-2

より良いオプションは、これを functions.php ファイルに追加することです:

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