wake-up-neo.net

Generieren von rel = prev und rel = next nur in WordPress-Kategorien

Ich habe versucht, die Tags rel = prev und rel = next zu entfernen von meiner website als mein seo gut vorgeschlagen. Ich habe die Funktionen gefunden, die die Magie perfekt erfüllen:

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

nach einer Weile schlug mein SEO-Typ jedoch vor, es in einem Rubrikenbereich zu belassen, in dem es für SEO unabdingbar ist.

gibt es eine einfache Möglichkeit, die rel = prev und rel = next Tags nur auf einer Kategorieseite ?, zB: www.website.com/category/category-name und von allen anderen Beitragstypen entfernen? (Post, Seite, Homepage etc etc)

Danke, Mädchen

1
gil hamer

Ich bin mir nicht ganz sicher, ob ich mit der Erklärung deines SEO-Kollegen einverstanden bin, dass rel = prev und rel = next für paginierte Archive verwendet werden.

Natürlich können Kategorien eine sein, aber auch Ihr Blog, wenn es mehrere Seiten enthalten würde.

Sowieso ist hier, was ich zZ benutze:

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: auch ich glaube start_post_rel_link wird nicht mehr verwendet.

3
user5424

Ich denke, Sie können Ihre Hooks in template_redirect hook einwickeln, der vor dem Senden von Inhalten an den Browser ausgelöst wird.

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

Probieren Sie die Funktion is_category aus. Sie sollten in der Lage sein, wp_head eine Aktion mit hoher Priorität hinzuzufügen, die das Ergebnis prüft, und dann die beiden obigen Anweisungen unter bestimmten Bedingungen auszuführen, um die Aktionen zu entfernen, die den Links REL zuweisen.

Ich bin mir ehrlich gesagt nicht sicher, ob diese Methode so früh im Lebenszyklus von WP funktionsfähig ist. Andernfalls rufen Sie die URL mit _SERVER ab und testen Sie, ob ein Kategoriemuster vorliegt.

0
SplinterReality