サポート » バグ報告と提案 » widget_tag_cloud_argsフィルターで非推奨エラー

  • 解決済 takumishiroma

    (@takumishiroma)


    以下のように、タグクラウドの表示順を投稿数順にすると、PHP8.0で非推奨のエラーが表示されます。

    function my_tag_cloud_number_filter($args) {
    	$myargs = array(
    		'orderby' => 'count',
    	);
    	$args = wp_parse_args( $args, $myargs );
    	return $args;
    }
    add_filter( 'widget_tag_cloud_args', 'my_tag_cloud_number_filter' );

    エラー内容:
    uasort(): Returning bool from comparison function is deprecated, return an integer less than, equal to, or greater than zero

    場所:
    wp-includes/category-template.php:903

    uasort関数のコールバックで真偽値を返しているのが原因かと思います。
    これをテーマ側で解消する方法はありますか?

    • このトピックはtakumishiromaが1ヶ月、 1週前に変更しました。
    • このトピックはtakumishiromaが1ヶ月、 1週前に変更しました。
2件の返信を表示中 - 1 - 2件目 (全2件中)
  • こんにちは

    tag_cloud_sort フィルターフックを使用するのはどうでしょうか?

    例:

    add_filter( 'tag_cloud_sort', function( $tags, $args ) {
    	uasort( $tags, function( $a, $b ) { return ( $a->count <=> $b->count ); } );
    	if ( 'DESC' === $args['order'] ) {
    		$tags = array_reverse( $tags, true );
    	}
    	return $tags;
    }, 10, 2 );
    スレッド開始 takumishiroma

    (@takumishiroma)

    解決しました!ありがとうございました!

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • このトピックに返信するにはログインが必要です。