Maison >interface Web >js tutoriel >Comment implémenter la page précédente et la page suivante d'une seule page WordPress [avec code] compétences_javascript
Les pages d'articles WordPress ont des fonctions pour implémenter les articles précédents et suivants. Cependant, nous souhaitons implémenter les fonctions de page précédente et suivante dans une seule page page.php. Les fonctions previous_post_link() et next_post_link() ne sont pas encore disponibles. Cela répondait complètement à mes besoins, j'ai donc écrit la fonction moi-même pour l'implémenter.
La page a une fonction hiérarchique. L'exigence est qu'il y ait des liens précédents et suivants entre les sous-pages triées par ordre de menu, tel que :
Thèmes (page parent)
---- zBench (page enfant 1)
---- zBorder (page enfant 2)
---- zSofa (enfant page 3)
Si la page actuelle est zBorder, alors le lien précédent doit être zBench et le lien suivant doit être 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); }
[Fonction]
subpage_nav_link($prevText, $nextText)
[Paramètre]
$prevText : Texte du lien pour l'article précédent S'il est vide, la valeur par défaut est le titre de la page
$nextText : texte du lien pour l'article suivant. Lorsqu'il est vide, il s'agit par défaut du titre de la page ;
PS : $prevText et $nextText prennent également en charge les combinaisons de caractères, telles que subpage_nav_link('oo %title xx', '') Dans ce cas, l'article du lien vers l'article précédent deviendra "oo nom de la page xx"
Autre article pratique : Implémentation de la page article wordpress pour appeler l'article précédent/suivant dans la même catégorie
Code appelé directement par défaut
5eb33a5d3a189f4a958a6a293ff2161a
f8ce11ac9bb312279f1c243bffbca2a0
04e5693efb86517034a23912ca5001c0
c5366ed80b2c782769d72844a4a3c47f
Voici le code complet :