ホームページ >ウェブフロントエンド >jsチュートリアル >WordPressシングルページの前ページと次ページを実装する方法【コード付き】_javascriptスキル

WordPressシングルページの前ページと次ページを実装する方法【コード付き】_javascriptスキル

WBOY
WBOYオリジナル
2016-05-16 15:11:051761ブラウズ

WordPress の記事ページには前と次の記事を実装する関数がありますが、previous_post_link() 関数と next_post_link() 関数は 1 つのページ page.php に実装したいと考えています。これは私のニーズを完全に満たしていたので、自分で関数を書いて実装しました。
このページには階層機能があり、次のようなメニュー順序でソートされたサブページ間に前と次のリンクがあることが必要です。

テーマ (親ページ)

---- zBench (子ページ 1)
---- zBorder (子ページ 2)
---- zSofa (子ページ 3)

現在のページが zBorder の場合、前のリンクは zBench であり、次のリンクは zSofa である必要があります。

把下面函数代码放入 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(); のすぐ下にあります)

コードをコピーします コードは次のとおりです:
f6763342dc37f624d12b4467ddf98af4 f497f15f776f466eeafe9ffc6228537d


最初の記事や最後の記事の場合は空白が表示されますが、判定を加えることで空白を埋めることができます

9ec8dba98d3677c7f01f3d490bbf16ae

37e31a5c408bfbcb21b99aee0ae3e8a2


テストの結果、同じカテゴリーの記事は表示されますが、最初の記事と最後の記事には「すでに最後の記事です」「すでに最後の記事です」という対応するプロンプトメッセージが表示されません。 get_previous_post() 関数で記事のカテゴリ ID を指定している限り、コードは完全に機能します。

完全なコードは次のとおりです:

コードをコピーします コードは次のとおりです:
554fa17b2cc9f4f737550c1e7fb0e984
b080b68bd5dee38b5d95402f13b8e872


テーマディレクトリ内の記事ページsingle.phpを開き、表示したい場所にコードを追加してファイルを保存します。
上記の WordPress 単一ページの前ページと次ページを実装する方法 [コード付き] は、エディターによって共有されたすべての内容ですので、参考にしていただければ幸いです。また、Script Home をサポートしていただければ幸いです。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。