web-dev-qa-db-fra.com

Génération de rel = prev et rel = next uniquement sur les catégories wordpress

J'essayais de supprimer les balises rel = prev et rel = next de mon site Web comme mon instinct de référencement suggéré. J'ai trouvé ces fonctions qui font parfaitement la magie:

remove_action('wp_head', 'start_post_rel_link', 10, 0 );
remove_action('wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0);

cependant, après un certain temps, mon responsable SEO a suggéré de le laisser dans une section de catégories où, là-bas, il est nécessaire en matière de référencement.

existe-t-il un moyen simple de mettre en œuvre les rel = prev et rel = next balises uniquement sur des catégories pages ?, par exemple: www.website.com/category/category-name et le supprimer de tous les autres types de publication? (poste, page, page d'accueil, etc.)

Merci, GIl

1
gil hamer

Je ne suis pas tout à fait sûr si je suis d’accord avec l’explication de votre spécialiste SEO, car rel = prev et rel = next sont utilisés pour les archives paginées .

Bien sûr, les catégories peuvent être une, mais aussi votre blog s'il contient plusieurs pages.

Quoi qu'il en soit, voici ce que j'utilise actuellement:

remove_action( 'wp_head', 'adjacent_posts_rel_link_wp_head' );

add_action( 'wp_head', 'cor_rel_next_prev_pagination' );
/**
 * Pagination with rel="next" and rel="prev".
 *
 * @link wp-includes|default-filters.php
 * @link http://core.trac.wordpress.org/ticket/18672 Implement rel="prev" and rel="next" for archives
 * @link http://googlewebmastercentral.blogspot.com/2011/09/pagination-with-relnext-and-relprev.html Pagination with rel="next" and rel="prev"
 */
function cor_rel_next_prev_pagination() {
  global $paged;
  if ( get_previous_posts_link() ) {
?>
  <link rel="prev" href="<?php echo get_pagenum_link( $paged - 1 ); ?>">
<?php
  }
  if ( get_next_posts_link() ) {
?>
  <link rel="next" href="<?php echo get_pagenum_link( $paged + 1 ); ?>">
<?php
  }
}

Edit: je crois aussi que start_post_rel_link n'est plus utilisé.

3
user5424

Je pense que vous pouvez envelopper vos crochets dans le crochet template_redirect, qui est déclenché avant d'envoyer le contenu au navigateur, quelque chose comme ceci:

add_action( 'template_redirect', 'wpse_47638_remove_rel_link' );
function wpse_47638_remove_rel_link() {
    if ( is_category() )
        return;
    remove_action('wp_head', 'start_post_rel_link', 10, 0 );
    remove_action('wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0);
}
1
Anh Tran

Essayez la fonction is_category . Vous devriez pouvoir ajouter à wp_head une action de priorité élevée qui vérifie le résultat, puis exécute de manière conditionnelle les deux instructions ci-dessus pour supprimer les actions qui affectent REL aux liens.

Honnêtement, je ne sais pas si cette méthode est opérationnelle si tôt dans le cycle de vie WP, mais à défaut, saisissez l'URL à l'aide de _SERVER et testez un modèle de catégorie.

0
SplinterReality