Je suis en train d'étendre mon plugin de pagination, après un conseil de @toscho. Donc, le plugin utilisera maintenant les mêmes filtres, crochets et arguments que les fonctions de pagination wordpress natives.
Mon problème est que les différentes fonctions wp nomment leurs arguments ... différents.
Voici comment modifier le texte du lien "Suivant".
wp_link_page()
= 'nextpagelink'
paginate_links()
= 'next_text'
Après avoir récupéré l’entrée dans la classe, je wp_parse_args( $args, $this->defaults );
mes arguments puis extract
eux.
Quand j'autorise maintenant les deux arguments 'nextpagelink'
& 'next_text'
en tant qu'arguments valides, comment pourrais-je les traiter? Lequel voudrais-je vérifier en premier? Dois-je définir une priorité, de sorte que l'un remplace (si les deux sont définis) l'autre?
Cet exemple montre mes dilemmes:
Code:
if ( $nextpagelink && $next_text )
{
// CASE 1: both are set
// which one should I take now?
}
elseif ( $nextpagelink )
{
// CASE 2: only one is set - should this one override the next one?
// set something
}
elseif ( $next_text )
{
// CASE 3: only one is set - should this be overridden by the previous one?
// set
}
else
{
// CASE 4: none is set - apply default
// set default
}
wp_link_pages()
et paginate_links()
fonctionnent dans des contextes différents: le premier sur une seule page paginée, le dernier sur une archive. Donc is_archive()
devrait être votre critère pour décider quel texte vous utiliserez, ou mieux: quel filtre vous utiliserez dans apply_filters()
.
Étant donné que les deux doivent exister pour entrer dans la première déclaration if, ne pourriez-vous pas faire quelque chose comme ça?
if ( $nextpagelink && $next_text ) {
// set both variables
}else {
// set default
}
ou si vous ne voulez travailler qu'avec l'un d'entre eux, que l'autre existe ou non, vous pouvez le faire:
if ( $nextpagelink || $next_text ) {
if ( $nextpagelink ) {
// set something
}
if ( $next_text ) {
// set
}
}else {
// set default
}