WPでCSVやXMLで複数記事を一括投稿した場合の「previous_post_link()」や「next_post_link()」の代替え

WPでCSVやXMLで複数記事を一括投稿した場合の「previous_post_link()」や「next_post_link()」の代替え

CSVで記事の一括投稿する場合に「次へ」「前へ」リンクがうまく作動しなかったため、動く方法を覚書。

通常の投稿記事で「次へ」「前へ」等リンクを表示する場合下記のようにコードを書く実現できる。

<div class="prev-next">
<p><?php previous_post_link(); ?></p>
<p><?php next_post_link(); ?></p>
</div>

ところが、CSVやXMLでの記事を一括入力する場合、投稿時間(タイムスタンプ)が同じになってしまうためこの方法が使えない。
そんな時は、下記コードで動く。

function.php

//IDから記事名取得

function get_page_title($page_id) {
 $str = get_page($page_id);
 return $str -> post_title;
}

single.php

<div class="perlink">
		<?php 
		$nowlink = get_the_ID();  //現在のページID取得
		$prelink = $nowlink - 1;  //次のページID
		$nextlink = $nowlink + 1; //次のページID
   $post_count = wp_count_posts()->publish; 	//現在公開中の記事数取得
	  $start_page = 201;    //STARTページID
$end_page = $post_count + $start_page - 1;    //ENDページID
		
		
		echo '<div>';
		if($nowlink > $start_page){
			echo '<a href="'.get_permalink($prelink).'">'.get_page_title($prelink).'</a>';		
		}else{
		echo '&nbsp;';
		}
		echo '</div><div> ';	
		if($nowlink < $end_page){
			echo '<a href="'.get_permalink($nextlink).'">'.get_page_title($nextlink).'</a>';
		}
		echo '</div>';
		?>	
</div>
		

この方法を使う場合、
予め記事のIDを201番から連番で設定しておく必要がある。

 

世界で起こった様々な情報やWP運営での覚書を配信しています。 ほぼ毎日更新中なので是非フォローしてやってください。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

Back To Top