web-dev-qa-db-ja.com

Posts_nav_link()の出力を変更するにはどうすればいいですか。

Posts_nav_link()の出力を変更したいです。 (または、新しい方向を向いていても構いません)私がやりたいことはshowです。次のアーカイブページ>前のページや次のページがない場合でも、現在は使用されていないリンクを削除して、テキスト<前を表示したままにします意味あり。

アーカイブページ用にカスタムページナビゲーションを作成しようとしましたが、うまくいきません。

 <h1>custom loop</h1>
 </div>
 <div class="col-md-12">

 <?php 
 $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;

 $args = array(
     'post_type'=>'post', // Your post type name
     'posts_per_page' => 6,
     'paged' => $paged,
 );

 $loop = new WP_Query( $args );
 if ( $loop->have_posts() ) {
     while ( $loop->have_posts() ) : $loop->the_post();

              // YOUR CODE
 the_id();
 echo '<br/>';
     endwhile;
 ?>
<div class="navigation"><p><?php posts_nav_link(); ?></p></div>

望ましい出力:

< Previous archivepage | Next archivepage >
1
DGRFDSGN

posts_nav_link()は単にget_previous_posts_link()get_next_posts_link()をそれらの間のセパレータと共に出力します。便利なことは、両方のページが存在するかどうかに応じて区切り記号の可視性を処理することです。あなたはいつもどちらかの側に何かを見せたいので、あなたはそれを必要としません。できることは、次のリンクと前のリンクを手動で出力することですが、リンクがあるかどうかを確認することもできます。ない場合は、代わりにスパンを出力できます。

これは次のようになります。

if ( get_previous_posts_link() ){
    previous_posts_link( 'Previous' );
} else {
    echo '<span aria-hidden="true">Previous</span>';
}

echo '|';

if ( get_next_posts_link() ){
    next_posts_link( 'Next' );
} else {
    echo '<span aria-hidden="true">Next</span>';
}

これで<span>を非アクティブリンクとしてスタイル設定できます。

アクセシビリティ機能として非アクティブな「リンク」のテキストを無視するようにスクリーンリーダーに指示するためにaria-hidden="true"を使用したことに注意してください。

1
Jacob Peattie

posts_nav_link() 関数は3つの引数を受け入れます。

<?php posts_nav_link( $sep, $prelabel, $nextlabel ); ?> 

$sep'|'に設定して、前後のラベルを変更することができます。前後のナビゲーションを別々に出力する必要はありません。

0
Jack Johansson