WordPressでのテンプレートの不満をまとめて修正しました

2019年5月29日

WordPressのブログでsitemap-generator.php on line 45に関してWarning: Use of undefined constant ddsg_languageのエラーが出るようになりました。
ネットで検索したら、PHP7.2以降でエラー表示するようです。
https://www.seojuku.com/blog/sitemap-generator-php-warning.html#comment-2305
で解決法が掲載されていて無駄な時間を費やさなくて済みました。
ありがたい事です。

そこで気づいたことがありました。pluginsってPHPで出来ているんですよね。
じゃあ、pluginsとかWordpressとか自分で好きなように改造できるんじゃないかと

例えば、sitemapは、従来1ページに50記事しか表示されなく、全部で2000記事があり45ページもあるので全部見るのが大変なんです。
それでsitemapで最初にカテゴリ一覧が表示されて、カテゴリをクリックしたら、そのカテゴリに登録された記事を全部まとめて表示できるようにしたいです。

それと、カテゴリ別での表示の場合、カテゴリごとの最新ページ一覧を表示させたいです。

2019年5月30日

カテゴリ別での記事一覧表示は、WordPress Popular Posts と WPP Plus Widgetというpluginsで対応できることがわかりました。
https://gameusers.org/dev/blog/wpp-plus-widget-new/
を参考に、記事フォーマットを

<li>
<div class=”wpp-list-category-new-title”>{title}</div>
</li>

にしました。記事一覧が10個しか表示されないのは物足りないので、20個ぐらいになるよう改造することにしました。

pluginsの WPP Plus Widgetの中のwpp-plus-widget.phpというファイルの中の

<p><label for=”<?php echo $this->get_field_id( ‘num_posts’ ); ?>”>記事数:</label>
<select class=”widefat” id=”<?php echo $this->get_field_id( ‘num_posts’ ); ?>” name=”<?php echo $this->get_field_name( ‘num_posts’ ); ?>”>
<?php for( $i = 1; $i <= 10; $i++ ) { ?>
<option<?php if( $i == $num_posts ) {echo ‘ selected’;} ?>><?php echo $i; ?></option>
<?php } ?>
</select></p>

の部分の
<?php for( $i = 1; $i <= 10; $i++ ) { ?>

<?php for( $i = 1; $i <= 20; $i++ ) { ?>
に変更すると希望通りになりました。

後で気づいたのですが、個別の記事を単独で表示した場合も、関連のカテゴリの最新記事一覧が表示されるようになりました。便利です。

sitemapのほうもHierarchical HTML Sitemapというpluginsを使用すれば、希望通りに出来る事に気づきました。
さっそく導入しました。
最初にカテゴリ一覧が表示され、その下に記事一覧が延々と表示されます。
カテギリ一覧のカテゴリを表示すると、そのカテゴリ一覧の部分にジャンプします。
これは良いです。

ついでにカテゴリの表示順もMy Category Orderを使って修正しておきました。なんか元々pluginsにインストールしてあり有効化までしてあったのですが、外観—ウィジェットでMy Category Orderを登録してなかったので動作していなかったのです。

ずっと前から不満に思っていた事が、あっという間に解決しました。
もっと早く着手すれば良かった。

コメントを残す

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