web-dev-qa-db-fra.com

Balise de titre personnalisé pour chaque page en pagination?

Avec la référence des questions ci-dessous.
Comment modifier les balises de titre sur les publications paginées?
Paginate tags page
Comment modifier les balises de titre sur les publications paginées?
Ajoutez le numéro de page à la méta-description dans Wordpress SEO by Yoast

J'utilise le plugin WP Page Numbers pour la pagination, mais le plugin n'offrait pas différentes options.

Je voudrais ajouter différentes balises de titre pour chaque page dans mes pages de pagination . Ci-dessous sont différentes pages

Pagination pour toutes les pages d'index (50 pages et plus)
http: // domain.com/page/2/

Pagination pour toutes les catégories (20 pages chacune en 4 catégories et croissante)
http: // domain.com/this-is-category-no-1/page/2/
http: // domain.com/this-is-my-cat-no-2/page/3/

1
muhammad usman

Utilisez-vous une requête pour afficher les résultats sur chaque page?

Si vous connaissez les arguments de la requête, vous pouvez effectuer des tâches en fonction de la sortie. Disons que 'posts_per_page' est défini sur 20. Vous pouvez utiliser found_posts pour compter le nombre de publications et afficher une balise de titre en fonction de cette information:

$num_posts = $my_query->found_posts;

// For index pages
if(is_page('page_title_here') && $num_posts / 20 == 4){
     // Now you're on page 4
}

// For category pages
if(is_category('category_title_here') && $num_posts / 20 == 3){
     // Now you're on page 3
}

Si 'paged' est défini sur $paged et que vous avez défini $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;, vous pouvez faire des déclarations if basées sur le numéro de page (plus agréable que le code IMO ci-dessus):

// For index pages
if(is_page('page_title_here') && $paged == 4){
     // Now you're on page 4
}

// For category pages
if(is_category('category_title_here') && $paged == 3){
     // Now you're on page 3
}

En fait, je ne suis pas sûr de ce que vous entendez par balises de titre, mais vous pouvez faire tout ce que vous voulez dans les déclarations if.

UPDATE

Si vous voulez que le code mette le titre dans la balise <title> de la section <head>, intégrez le code dans une fonction:

function title_function(){
    // For index pages
    if(is_page('page_title_here') && $paged == 4){
         return 'Title for page 4 on page_title_here';
    }

    // For category pages
    if(is_category('category_title_here') && $paged == 3){
         return 'Title for page 3 on category_title_here';
    }
}

Et met

<title><?php echo title_function(); ?></title>

UPDATE 2

J'ai mal interprété la question, au lieu de is_page dans le code ci-dessus, utilisez is_home() si votre page affiche des publications récentes, ou is_front_page() si votre page d'accueil est une page statique:

function title_function(){
    // For homepage
    if(is_home() && $paged == 4){
         return 'Title for page 4 on page_title_here';
    }

    // For category pages
    if(is_category('category_title_here') && $paged == 3){
         return 'Title for page 3 on category_title_here';
    }
}
0
eskimo