WordPress の記事ページには前と次の記事を実装する関数がありますが、previous_post_link() 関数と next_post_link() 関数は 1 つのページ page.php に実装したいと考えています。これは私のニーズを完全に満たしていたので、自分で関数を書いて実装しました。
このページには階層機能があり、次のようなメニュー順序でソートされたサブページ間に前と次のリンクがあることが必要です。
---- zBench (子ページ 1)
---- zBorder (子ページ 2)
---- zSofa (子ページ 3)
把下面函数代码放入 functions.php(注:函数随手写的,可能不够精简) /** * get subpage previous/next page link by zwwooooo */ function subpage_nav_link($prevText='', $nextText='') { global $post; if ( !$post->post_parent ) return null; //如果不是子页面返回Null $args = array( 'sort_order' => 'ASC', 'sort_column' => 'menu_order', 'child_of' => $post->post_parent, 'post_type' => 'page' ); $pages = get_pages($args); $num = count($pages); $i = 0; $index = -1; foreach ($pages as $page) { if ($page->ID == $post->ID) { $index = $i; break; } ++$i; } if ($i == 0) { $prev = ''; $next = $pages[$index+1]; } elseif ($i == $num-1) { $prev = $pages[$index-1]; $next = ''; } else { $prev = $pages[$index-1]; $next = $pages[$index+1]; } if ($prev) { if ($prevText) { if ( substr_count($prevText, '%title') > 0 ) { $explode = explode('%title', $prevText); $prevText = $explode[0] . get_the_title($prev->ID) . $explode[1]; } } else { $prevText = get_the_title($prev->ID); } $prevlink = '<a class="previous-page-link" href="' . get_page_link($prev->ID). '">' . $prevText . '</a>'; } if ($next) { if ($nextText) { if ( substr_count($nextText, '%title') > 0 ) { $explode = explode('%title', $nextText); $nextText = $explode[0] . get_the_title($next->ID) . $explode[1]; } } else { $nextText = get_the_title($next->ID); } $nextlink = '<a class="next-page-link" href="' . get_page_link($next->ID). '">' . $nextText . '</a>'; } return array($prevlink, $nextlink); }
[機能]
subpage_nav_link($prevText, $nextText)
[パラメータ]
$prevText: 前の記事のリンク テキスト。空の場合、デフォルトはページ タイトル
です。
$nextText: 次の記事のリンク テキスト。空の場合、デフォルトでページ タイトルになります。
例: 一般的なテーマは、page.php のループ内に呼び出しコードを挿入することです (わかりませんが、the_content(); のすぐ下にあります)
追記: $prevText と $nextText は、subpage_nav_link('oo %title xx', '') などの文字の組み合わせもサポートしています。この場合、前の記事のリンク記事は「oo ページ名 xx」になります。
もう一つの実践的な記事: 同じカテゴリの前/次の記事を呼び出すための wordpress 記事ページの実装
投稿順に前後の記事を表示するためのWordPressが提供する関数コードを呼び出します。カテゴリごとに小説を追加するため、先日作成したWordPress小説テンプレート「ブログバー初のWordPress小説」です。 「Webサイトのテーマテンプレート「wpnovel」で、前後の記事をこの順番で表示するのが適切でない場合は、記事ページに同じカテゴリ内の前後の記事を表示させるのが正しい方法です。WordPressは強力で、常にユーザーのアイデアを満たし、関連する機能コードが検索によって見つかりました。
デフォルトで直接呼び出されるコード
最初の記事や最後の記事の場合は空白が表示されますが、判定を加えることで空白を埋めることができます
テストの結果、同じカテゴリーの記事は表示されますが、最初の記事と最後の記事には「すでに最後の記事です」「すでに最後の記事です」という対応するプロンプトメッセージが表示されません。 get_previous_post() 関数で記事のカテゴリ ID を指定している限り、コードは完全に機能します。
完全なコードは次のとおりです: