web-dev-qa-db-ja.com

タグクラウドウィジェット番号を編集

デフォルトでは、 WordPress tagクラウドウィジェットには一定量の45タグが表示されます。これはwp-includes/category-template.phpファイルで見ることができます。

デフォルトでは、私がインストールした WooCommerce プラグイン、そしてそれは製品タグクラウドウィジェットでもあります。

たとえば15個の商品タグのみを表示するために、wp-content/themes/functions.phpファイル内からこの金額を変更するにはどうすればよいですか。

これが私のこれまでのところですが、それはうまくいきません。

function custom_tag_cloud_widget($args) {
    $args['smallest'] = 8; //smallest tag
    $args['largest'] = 22; //largest tag
    $args['number'] = 15; //adding a 0 will display all tags
    $args['unit'] = 'pt'; //tag font unit
    return $args;
}

add_filter( 'widget_tag_cloud_args', 'custom_tag_cloud_widget' );

ただし、コアのwp-includes.php/category-template.phpファイル内の番号を15に変更してもうまくいきます。

明らかに、私はどんなコアファイルも編集したくないし、代わりの解決策を探しています。

ありがとう。

5
user1752759

テーマのfunction.phpに以下を追加してください。 'number'を45から15に変更した以外は、デフォルト値を以下に示します。変更した値だけを含める必要があるため、デフォルト値をそのまま使用するか、それらの行を削除/コメントアウトすることができます。

Wordpressのタグクラウドウィジェットの場合:

function custom_tag_cloud_widget() {
    $args = array(
        'smallest' => 8, 
        'largest' => 22, 
        'unit' => 'pt', 
        'number' => 15,
        'format' => 'flat', 
        'separator' => "\n", 
        'orderby' => 'name', 
        'order' => 'ASC',
        'exclude' => '', 
        'include' => '', 
        'link' => 'view', 
        'taxonomy' => 'post_tag', 
        'post_type' => '', 
        'echo' => true
    );
    return $args;
}
add_filter( 'widget_tag_cloud_args', 'custom_tag_cloud_widget' );

WooCommerce商品タグウィジェットの場合:

function custom_woocommerce_tag_cloud_widget() {
    $args = array(
        'number' => 15,
        'taxonomy' => 'product_tag'
    );
    return $args;
}
add_filter( 'woocommerce_product_tag_cloud_widget_args', 'custom_woocommerce_tag_cloud_widget' );
6
Gabriel

このスレッドは今日の出発点でした。私が私のウェブサイトに加えた変更はあなたがWooCommerceに加えるものと相関するかもしれません。私はProduct Tag Cloudにもっと古い検索用語を表示したいと思いました。私のウェブサイトはWP Eコマース、古いバージョンを持っています。他に答えがないので、wp-includes/category-template.phpファイルに行き、45を検索し、60に変更してテストしました。 Blog Tag Cloudでは機能しましたが、Product Tag Cloudでは機能しませんでした。コードは次のようになりました。

function wp_tag_cloud( $args = '' ) {
    $defaults = array(
        'smallest' => 8, 'largest' => 22, 'unit' => 'pt', 'number' => 45,
        'format' => 'flat', 'separator' => "\n", 'orderby' => 'name', 'order' => 'ASC',
        'exclude' => '', 'include' => '', 'link' => 'view', 'taxonomy' => 'post_tag', 'echo' => true
    );

WP Eコマースファイルで、wp-content/plugins/wp-e-commerce/tagging_functions.php、同様のセクションにあります(45で検索)。

function product_tag_cloud(){
    product_tag_init();
    $defaults = array(
        'smallest' => 8, 'largest' => 22, 'unit' => 'pt', 'number' => 60,
        'format' => 'flat', 'orderby' => 'name', 'order' => 'ASC',
        'exclude' => '', 'include' => ''

45から60に変更し、保存してテストしました。出来た。タグクラウドは60に増えました。

Blog Cloudで番号を45に戻して、もう一度テストしました。 Blog Cloudには現在45の用語があり、Product Tag Cloudには60の用語があります。明らかな競合はありません。

古いタグを削除して新しいタグを強調するために、各製品のタグを編集しています。クラウドは徐々に調整されています - いくつかの用語を削除し、他の用語を追加します。

0
KCR

私は簡単な解決策を見つけました、あなたの function.php ファイルにこのフックを置いてください。それは私にとってはうまくいきます。必要に応じてnumberパラメータの値を変更するだけです。

//Register tag cloud filter 
add_filter('widget_tag_cloud_args', 'tag_widget_limit');

//Limit number of tags inside widget
function tag_widget_limit($args){

 //Check if taxonomy option inside widget is set to tags
 if(isset($args['taxonomy']) && $args['taxonomy'] == 'post_tag'){
  $args['number'] = 10; //Limit number of tags
 }

 return $args;
}

ここにソースがあります https://w3reign.com/change-tag-cloud-widget-limit-in-wordpress/

0
Vijay Dhanvai