ページ送りメニューの位置を変更したい。
-
記事の下に、関連記事のタイトルをプラグインで表出させています。長い記事は、<!–nextpage–>タグによってページ分割したいのですが、表示されるページ送りのメニューが記事の下の関連記事タイトルのさらにその下に表示されるため、目線がそのままメニューに移行しません。そのため、ページ送りメニュの位置を記事の下に移動させたいのですが、どこをいじればいいのかよくわかりません。テーマはRaindropsです。ご教授いただけると助かります。よろしくお願いします。
-
こんにちは
表示されるページ送りのメニューが記事の下の関連記事タイトルのさらにその下に表示されるため、目線がそのままメニューに移行しません。
「 記事の下の関連記事タイトル 」の表示のためにインストールしてあるプラグインを教えていただけますか?
nobita様
いつも有り難うございます。関連記事表示のために使用しているプラグインは下記です。
・WordPress Related Post for Japanese
・WP Socially Related Settings
ご教授いただけると助かります。よろしくお願いします。WordPress Related Post for Japaneseの動作確認はできていないのですが、
これらのプラグインは、インストールと同時に、投稿本文の後方に表示されるようにフィルタがセットされているようです。
なので、現在のRaindropsのテンプレートの書き換え等で対応することはできません
raindrops_prev_next_post()
標準では、この関数はエコーするだけなので、return するようにカスタマイズが必要そのうえで、the_contentの後方に、かつ、それらのプラグインの前方に(9の部分を変更することで位置を変更できると思います)
なを、この関数でPHPのob_start() 、ob_get_clean()という関数を使っていますが、配布用テーマに用いることができない関数(エコーする出力を変数の中に取り込む関数の利用がテーマでは認められていないので、)なので、その点ご了承ください
functions.phpの先頭に(
<?php
の前に[チャイルドテーマのfunctions.phpなら位置の指定は、ありません]) 貼り付けてみてください<?php add_filter( 'the_content', 'my_change_nav_next_menu_position', 9 ); function my_change_nav_next_menu_position( $content ) { return $content . raindrops_prev_next_post(); } function raindrops_prev_next_post( $position = "nav-above" ) { if ( is_category() ) { $filter = true; //display same category. } else { $filter = false; } //exclude separate 'and' $exclude_category = apply_filters( 'raindrops_next_prev_excluded_categories', '' ); ob_start(); $html = '<div id="%1$s" class="%2$s"><span class="%3$s">'; printf( $html, $position, "clearfix", "nav-previous" ); previous_post_link( '%link', '<span class="button"><span class="meta-nav">«</span> %title</span>', $filter, $exclude_category ); $html = '</span><div class="%1$s">'; printf( $html, "nav-next" ); next_post_link( '%link', '<span class="button"> %title <span class="meta-nav">»</span></span>', $filter, $exclude_category ); echo '</div></div>'; $buffer = ob_get_clean(); return $buffer; } ?>
動作確認:development version (4.0-alpha)+WP Socially Related version1.0
nobita様
早速のアドバイス有り難うございます。指定のコードをfunction.phpに貼り付けたところ、前ページと後ページを示すナビが記事下の位置に表示されました。しかし、<nextpage–>タグによって表出される、分割したページ数を示す数字のメニューは関連記事下の位置のままでした。恐らく、当方のページ送りのメニューという表現のせいだと思うのですが、移動させたいのは、記事分割をすると表示されるページを示す数字のメニューでして、<?php wp_link_pages( $args ); ?> の部分になるかと思います。このタグが、Raindropsのsingle.phpでどのように表記されているのか、わからないのですが、上記コードを改変して対応可能でしょうか?アドバイスをいただけると助かります。よろしくお願いします。
記事分割のリンクを表示している関数は、
part.php 38行
wp_link_pages( 'before=<p class="pagenate clearfix">&after=</p>&next_or_number=number&pagelink=<span>%</span>' );
で、ご指摘の通りです
前回のコードと同様の処理で、解決できるのではないかとはじめは考えていたのですが、どうもうまくいきません。
なぜうまくいかないのかは、今のところわからないのですが、
(ページのリンクが複数回表示されてしまう、または、表示できなくなる)add_action(‘the_content’, array($this, ‘theContent’));フィルタで書くべきフックがアクションになっています
WP Socially Related では、
add_action('the_content', array($this, 'theContent'));
フィルタフックで記述すべきところを、アクションフックで記述したりしている間違いなどもあり、よくわかりません。
また、WordPress Related Post for Japaneseもこちらの環境ではうまく動作していない(表示されない)といったところもあります。
テストには、
http://wordpress.org/plugins/wordpress-23-related-posts-plugin/
を代替で使っています。このようなことから、CSSで調整するのが一番近道なのではないかと思います。
以下のようなスタイルの考え方で、位置の変更は可能と思いますが
(プラグインで表示しているブロックをマージントップを使って隙間をあけて、ページリンクを、position:relativeにして、位置を上方にずらすという考え方です).wp_socially_related{ /* margin-top:100px!important; 並び順 Social Related がコンテンツ直下にある場合 コメントアウトを解除してマージントップをつけてください*/ } .wp_rp_wrap{ margin-top:100px; } .pagenate{ position:relative; top:-660px; z-index:1000; }
うまくいかないようであれば、サイトのURLを教えていただけると 調整可能だと思いますので、URLを書き込んでみてください。
- トピック「ページ送りメニューの位置を変更したい。」には新たに返信することはできません。