はじめに
WordPressを使っている人はほぼ全ての人がテーマを使用していると思います。
そして、ほぼ全ての人がプラグインを使用していると思います。
特に、ページ下部に何かを表示するプラグインを使っていると、それが混雑してきたり、順番が気に入らなくなったりします。
今回は、その中でもページ下部のプラグインの順番を変える方法について書いてみようと思います。
PHPの知識が少し必要になります。
WordPressでは下手にPHPをいじると以下のようなめんどくさい状況になることもあるので、自己責任でお願いします。
したかったこと
筆者の記事のページの下部には、twitterやfacebookなどの共有ボタンや関連記事や前の記事などがあります。
その中でも、SNSの共有や関連記事はプラグインを使用しています。
なので、プラグインを有効化し設定さえすれば簡単に表示はされるのですが、複数あるとその順番は勝手に決まります。
個人的にはインストール順なのかなと思っていますが、その程度です。
ただ正直順番なんてなんでもいいと思っていました。
しかし、すこし長い記事などでページを分けたいと思ったときに少し不都合というかしっくりこないことがありました。
WordPressでは
<img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-wp-more="nextpage" class="wp-more-tag mce-wp-nextpage" alt="" title="改ページ" data-mce-resize="false" data-mce-placeholder="1" />
をテキストに書けば、ページわけをすることが出来ます。
ただ、その結果ページ下部は以下のように表示されてしまいます。
順番を見てみると
・共有
・関連記事
・ページ送り
となっています。
ページ送りの位置がしっくり来ませんでした。
そこで、ページ送りの位置を上にあげようとしたのですが、これが以外とphpの知識が無いと出来ないことだったのでまとめます。
ページ下部のプラグインの順番の変え方
WordPressの「外観」から「テーマの編集」といくと、記事のおおもとのソースが出てきます。
その中でも、content.phpのthe_content()は具体的な記事の内容を表示するメソッドです。
もちろんテーマにもよりますが、だいたいのテーマは似ている構成になっているので、対応したものがあると思います。
... <div class="post-content"> <?php the_content(); ?> // 内容を表示するメソッド <?php wp_link_pages(...); ?> // ページ送りをするメソッド <?php do_action( 'post_after' ); ?> //その後のメソッド </div> ...
デフォルトでは内容を表示した後に、ページ送りのメソッドがあります。
しかし、プラグイン等でページ下部に何かを入れると、このthe_content()にそのプラグインが含まれ、すでに下部に位置してあるのです。
つまり解決方法としては、プラグインは設定から表示しないようにし、そのプラグインを表示するphpのコードを直接content.phpに追記することです。
例として、WP Social Bookmarking LightというSNSの共有の位置を変えてみます。
まず、普通にプラグインの設定画面に行きます。
「Bottom」としていた位置を「None」として、表示しないようにします。
これでひとまず何も表示されない様になります。
そして、表示したい箇所に
<?php wp_social_bookmarking_light_output_e(null, get_permalink(), the_title("", "", false)); ?>
を入れます。
関連記事のYARPPというプラグインも同様に設定します。
結果として、content.phpは以下の様になります。
... <div class="post-content"> <?php the_content(); ?> // 内容を表示するメソッド <?php wp_link_pages(...テーマによるなんかいろいろ...); ?> // ページ送りをするメソッド <?php wp_social_bookmarking_light_output_e(null, get_permalink(), the_title("", "", false)); ?> // SNSの共有を表示するメソッド <?php related_posts(); ?> // 関連記事を表示するメソッド <?php do_action( 'post_after' ); ?> //その後のメソッド </div> ...
それぞれのプラグインを表示するためのメソッド名や使い方は、ぐぐったら大抵出てきます。
でてこない場合は自分でプラグインのソースを見ていかなきゃいけないことにはなると思いますが、そんなことには多分なりません。
そして、その結果以下のように表示されるようになります。
・ページ送り
・SNS共有
・関連記事
という順序になりました。
まとめると、プラグインの設定では表示せずにphpの適した場所にメソッドをいれて表示しようということです。
phpがわからない人に取ってみれば、ハードルは高いかもしれませんがプログラミングをかじった経験がある人は難しくないと思います。
では〜