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

WBOY
リリース: 2016-05-16 15:11:05
オリジナル
1735 人が閲覧しました

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(); のすぐ下にあります)

コードをコピーします コードは次のとおりです:
if ( function_exists('subpage_nav_link') ) {
if ( $subpage_nav_link = subpage_nav_link() ) {
echo $subpage_nav_link[0] //前の記事(ページ)リンク
echo $subpage_nav_link[1] //次の記事(ページ)リンク
}
}
?>


注: if (!$subpage_nav_link[0]) を使用して前の記事があるかどうかを判断でき、同様に if (!$subpage_nav_link[1]) を使用して次の記事があるかどうかを判断できます。

追記: $prevText と $nextText は、subpage_nav_link('oo %title xx', '') などの文字の組み合わせもサポートしています。この場合、前の記事のリンク記事は「oo ページ名 xx」になります。

もう一つの実践的な記事: 同じカテゴリの前/次の記事を呼び出すための wordpress 記事ページの実装


投稿順に前後の記事を表示するためのWordPressが提供する関数コードを呼び出します。カテゴリごとに小説を追加するため、先日作成したWordPress小説テンプレート「ブログバー初のWordPress小説」です。 「Webサイトのテーマテンプレート「wpnovel」で、前後の記事をこの順番で表示するのが適切でない場合は、記事ページに同じカテゴリ内の前後の記事を表示させるのが正しい方法です。WordPressは強力で、常にユーザーのアイデアを満たし、関連する機能コードが検索によって見つかりました。

デフォルトで直接呼び出されるコード


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


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

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

コードをコピーします コードは次のとおりです:
$categories = get_the_category();
$categoryIDS = array();
foreach ($categories として $category) {
array_push($categoryIDS, $category->term_id);
}
$categoryIDS = implode(",", $categoryIDS);
?>




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