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

Comment implémenter la page précédente et la page suivante d'une seule page WordPress [avec code] compétences_javascript

WBOY
Libérer: 2016-05-16 15:11:05
original
1756 Les gens l'ont consulté

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);
}
Copier après la connexion

[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 ;

Par exemple : le thème général est d'insérer le code appelant dans la boucle de page.php (je ne sais pas, juste en dessous de the_content();)

Copier le code Le code est le suivant :
if ( function_exists('subpage_nav_link') ) {
si ( $subpage_nav_link = subpage_nav_link() ) {
echo $subpage_nav_link[0]; //Lien de l'article précédent (page)
echo $subpage_nav_link[1]; //Lien de l'article (page) suivant
>
>
?>

Remarque : vous pouvez utiliser if (!$subpage_nav_link[0]) pour déterminer s'il existe un article précédent, et de même if (!$subpage_nav_link[1]) pour déterminer s'il existe un article suivant.

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

Le code de fonction fourni par wordpress pour afficher les articles précédents et suivants est appelé selon l'ordre de publication. Le modèle de roman wordpress que j'ai réalisé il y a quelques jours, car chaque catégorie sert à ajouter un roman "Premier wordpress de Blog Bar". roman "Modèle de thème de site Web wpnovel", s'il n'est pas approprié d'utiliser l'ordre d'appel des articles précédents et suivants, c'est la bonne façon de laisser la page d'article afficher les articles précédents et suivants dans la même catégorie WordPress est puissant et. peut toujours satisfaire les idées de l'utilisateur, le code de fonction correspondant a été trouvé grâce à la recherche.

Code appelé directement par défaut


Lorsque l'article est le premier ou le dernier article, des lacunes seront affichées, mais les lacunes peuvent être comblées en ajoutant un jugement


Après le test, bien que les articles de la même catégorie soient affichés, le premier article et le dernier article n'afficheront pas les messages d'invite correspondants « Déjà le dernier article » et « Déjà le dernier article ». Tant que vous spécifiez l'ID de catégorie de l'article dans la fonction get_previous_post(), le code sera pleinement efficace.

Voici le code complet :

Copier le code Le code est le suivant :
$categories = get_the_category();
$categoryIDS = array();
foreach ($catégories comme $catégorie) {
array_push ($categoryIDS, $category->term_id);
>
$categoryIDS = imploser(",", $categoryIDS);
?>



Ouvrez la page de l'article single.php dans le répertoire du thème, ajoutez le code à l'endroit où vous souhaitez qu'il soit affiché et enregistrez le fichier.
La méthode ci-dessus pour implémenter la page précédente et la page suivante d'une seule page WordPress [avec code] est tout le contenu partagé par l'éditeur. J'espère qu'elle pourra vous donner une référence, et j'espère également que vous soutiendrez Script Home. .

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal