ゲーム攻略地帯の裏側

ゲーム、トラブル解決、サーバ設定、PCグッズ

WordPress

【WordPress】カテゴリ件数の表示しようとしたら飽きた

投稿日:

wordpressのコードを見るのに飽きて手抜きで終わらせました。

どこかでちゃんと設定できそうな気がする。

・wp-includes\widgets\class-wp-widget-categories.php
49行目付近

function  widget()内

に変えて終わり。

ビフォー

アフター

やったこと

grepかけまくりで変更箇所を探す。

リスト一覧を表示する関数を探した

調べた結果、wp_list_categories()らしい

wp_list_categoriesのドキュメントを見たところ、
show_countに1を指定できれば、件数が表示されるようだ

参考:WordPress codex日本語版

https://wpdocs.osdn.jp/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%82%BF%E3%82%B0/wp_list_categories

show_countをどうやって設定する?

show_countは素直に考えて、wp_list_categories()を呼び出すときに指定しているはず。
grepをかけた。
結果…

・wp-includes\widgets\class-wp-widget-categories.php(114,3)

このあたりが怪しいが、直接show_countを渡すのではなく、もう一段余計な段階を踏んでいるようだ。
$cat_argsにwp_list_categories()に渡す引数が入っているように見える。

apply_filtersの詳細は無視

apply_filtersはC系の言語でいうポインタや参照を作るような関数っぽい。
ある関数に、可変長引数や別の関数を渡したいときに使うっぽい。
今はWordPressのお勉強をしているわけではないので深入りはしない。

$cat_argsに値を設定している場所を探す

またgrep。cat_argsで。

一番上に出てきたやつがあやしいですね。ダブルクリックしてジャンプしてみます。

・wp-includes\widgets\class-wp-widget-categories.php(59,4)

function  widget()内

$cat_args = array(
'orderby' => 'name',
'show_count' => $c,
'hierarchical' => $h
);

たぶんビンゴですね。
$cってなんだよ…といいたくなりますが、ここを1にすれば記事の件数は表示されるでしょう。
が、わざわざ変数を使っているということは、元をたどればもっとすっきり設定できる箇所がありそうに思えます。

$cってなんだよ…というのを判断する

ちょっと上を見ると$cの正体がわかります。

$c = ! empty( $instance['count'] ) ? '1' : '0';
$h = ! empty( $instance['hierarchical'] ) ? '1' : '0';
$d = ! empty( $instance['dropdown'] ) ? '1' : '0';

$instance[‘count’]が設定されていたら1、そうでなければ0になるわけですね。

$instance[‘count’]に値を突っ込んでいる場所を探す

参照段階が多すぎて飽きてきました。

考えられるのは、
1.設定ファイルなどを読み込んで$instanceを丸ごと設定している
2.直書き。phpコード上で、$instanceのパラメータをまとめて設定している
3.直書き。phpコード上で、$instance[‘count’]=0などで地道に設定している

あたりですか。まあとりあえず$instanceでgrepしてみます。

こんな感じになってます。

よくわからなかったので別の方向から行きます。
さきほどの、

$c = ! empty( $instance['count'] ) ? '1' : '0';

などがあった関数widget() の呼び出し元を探します。

widget(で検索した結果、(特殊文字が面倒なので正規表現はオフにしておくこと)、
class-wp-widget.php(395,11) [SJIS]: $this->widget( $args, $instance );
がひっかかりました。

$instances = $this->get_settings();
$instance = $instances[ $this->number ];
このあたりがとても怪しいですね。

ここで完璧に飽きた

こんなことで時間食ってられないしつまらないので、

・wp-includes\widgets\class-wp-widget-categories.php
49行目付近

function  widget()内

に変えて終わりにしました。

 

-WordPress

執筆者:


comment

メールアドレスが公開されることはありません。

関連記事

no image

【WordPress】画像をクリップボードから直接貼り付け(twitterのように)

画像をクリップボードから直接貼り付けられるワードプレスプラグイン、 OnePress Image Elevatorをインストールしてみました。 プラグインの追加から、”OnePress I …

【WordPress】grepの使い方、使い道 – サイドバーにタイトルが表示されない

この記事では、ここをいじれば解決する、というより、いじるべき場所はどこか?それを見つける方法を書いています。 grepは実に役に立ちます。他のトラブルでも使えますよ。   Stinger8で …

【WordPress裏技】 他人のサイトの表をコピペする(要エクセル)

他人のウェブサイトの表を、wordpressにコピペする方法です。 このやり方だとexcel必須。 他のexcel互換表計算ソフトでも可能かもしれませんが試していません。 一言で言うと、表をexcel …

no image

WordPress コメントを承認制にする方法【スパム、荒らし対策】

  コメ承認の利点 ・有害コメントを訪問者の目にいっさい触れさせず、なかったことにできる どんな有害コメがあるかは下の、『なぜこんな設定があるのか、その理由』を見てね   コメ承認 …

[WordPress]カテゴリ投稿件数の表示方法

ワードプレスのカテゴリ投稿件数の表示方法。メモ。  こういう奴。 以前はやり方がわからず中途半端にコードをいじったりしていたが、設定項目にちゃんとあった。 外観→ウィジェット→カテゴリ→投稿数を表示。 …