WordPress 「次の投稿」「前の投稿」を非表示にする方法|WPカスタマイズ

WordPress

wp_postnavi00

WordPress Twenty Fourteen Ver.3.8.7の投稿ナビ「次の投稿」「前の投稿」を非表示にする方法についてのメモです。スタイルシートに追記する取り急ぎの方法から、PHPファイルに追記してしっかりと非表示にする方法まで3通りの方法メモしました。
【 環境 】WordPress : Twenty Fourteen

スポンサーリンク
[adSense]

1.スタイルシートを編集して非表示にする

「とにかく時間をかけたくない」という場合は、スタイルシートstyle.cssに以下を追記するだけで簡単に非表示にできます。

/*** 「次の投稿」「前の投稿」を非表示 ***/
.nav-links {
display: none;
}

2.テーマテンプレートのPHPファイルを編集して非表示にする

「template-tags.php」ファイルを編集して非表示にする方法です。
wp-content/themes/twentyfourteen/inc/template-tags.php の
83行目以降

<nav class="navigation post-navigation" role="navigation">
		<h1 class="screen-reader-text"><?php _e( 'Post navigation', 'twentyfourteen' ); ?></h1>
		<div class="nav-links">
			<?php
			if ( is_attachment() ) :
				previous_post_link( '%link', __( '<span class="meta-nav">Published In</span>%title', 'twentyfourteen' ) );
			else :
				previous_post_link( '%link', __( '<span class="meta-nav">Previous Post</span>%title', 'twentyfourteen' ) );
				next_post_link( '%link', __( '<span class="meta-nav">Next Post</span>%title', 'twentyfourteen' ) );
			endif;
			?>
		</div><!-- .nav-links -->
	</nav><!-- .navigation -->

上記をすべてコメントアウトします。
なお、この方法は、親テーマのテンプレートを直接編集する方法なので、テーマをバージョンアップした際にもとに戻ってしまいます。

対策としては、バージョンアップしたら改めて上記の編集します。
「それは面倒だなぁ」という場合は次の子テーマを編集する方法がおすすめです。

3.子テーマのPHPファイルを編集して非表示にする

テーマをバージョンアップしても影響がないように、子テーマのPHPファイルを編集します。

子テーマに inc/template-tags.php を作って編集したところ、親テーマのファイルを読み込んでしまって反映されませんでした。

その理由はfunctions.phpに
require get_template_directory() . ‘/inc/template-tags.php’;
と記述があり、親テーマのphpファイルを読み込んでいるためでした。

親テーマを編集しては意味がないので、以下の部分を子テーマのfunctions.phpに追記します。
※functions.phpを編集する場合はとても注意が必要なので、「Wordpress functions.php 子テーマ作成~編集、追記方法について エラーを防ぐ!」の詳細を参照ください。

wp-content/themes/twentyfourteen/inc/template-tags.php の
73行目以降

function twentyfourteen_post_nav() {
	// Don't print empty markup if there's nowhere to navigate.
	$previous = ( is_attachment() ) ? get_post( get_post()->post_parent ) : get_adjacent_post( false, '', true );
	$next     = get_adjacent_post( false, '', false );

	if ( ! $next && ! $previous ) {
		return;
	}

	?>
	<nav class="navigation post-navigation" role="navigation">
		<h1 class="screen-reader-text"><?php _e( 'Post navigation', 'twentyfourteen' ); ?></h1>
		<div class="nav-links">
			<?php
			if ( is_attachment() ) :
				previous_post_link( '%link', __( '<span class="meta-nav">Published In</span>%title', 'twentyfourteen' ) );
			else :
				previous_post_link( '%link', __( '<span class="meta-nav">Previous Post</span>%title', 'twentyfourteen' ) );
				next_post_link( '%link', __( '<span class="meta-nav">Next Post</span>%title', 'twentyfourteen' ) );
			endif;
			?>
		</div><!-- .nav-links -->
	</nav><!-- .navigation -->
	&lt;?php
}

上記のfunctionをコピーして子テーマのfunctions.phpに追記したら「2.テーマテンプレートのPHPファイルを編集して非表示にする」と同様に
83行目以降


までをコメントアウトするか削除します。

まとめ

やり方としては1.の方法がてっとり早いと思いますが、3.の方法は非表示にする場合以外にも、カスタマイズする場合にもとても有効な方法だと思います(個人的には投稿ナビ上部スペースをカスタマイズするついでもあり、この方法を採用してます)。

実はWordPress twenty fourteenの投稿ナビの上部スペースは、カスタマイズ箇所が見つけずらかったので、3.の方法は今後も役立つと思います。

ということで、「次の投稿」「前の投稿」を非表示にする方法についてでした。

 

コメント

タイトルとURLをコピーしました