web-dev-qa-db-ja.com

ワードプレスのカテゴリにのみrel = prevとrel = nextを生成する

rel = prevおよびrel = nextタグを削除しようとしていました私のSEOの腸が示唆したように私のウェブサイトから。私は完璧に魔法を使うこれらの機能を見つけました:

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

しかし、しばらくして私のSEOの人はそれがSEOに関する限りそれがそこに必要であるカテゴリセクションにそれを残すことを提案しました。

rel = prevrel = nextを実装する簡単な方法はありますか)カテゴリページにのみタグ(?=など):www.website.com/category/category-nameそして他のすべての投稿タイプから削除しますか? (投稿、ページ、ホームページなど)

ありがとう、GIl

1
gil hamer

Rel = prevとrel = nextがページ付けされたアーカイブに使われているので、私があなたのSEOの男の説明に同意するかどうかは全くわかりません。

カテゴリは1つでもかまいませんが、ブログに複数のページが含まれている場合はそれも含まれます。

とにかく、これが私が現在使っているものです:

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
  }
}

編集:start_post_rel_linkはもう使われていないと思います。

3
user5424

フックをtemplate_redirectフックにラップできると思います。これはブラウザにコンテンツを送信する前に発生します。

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

is_category 関数を試してください。結果をチェックする優先順位の高いアクションをwp_headに追加してから、上記の2つのステートメントを条件付きで実行して、リンクにRELを割り当てるアクションを削除することができます。

このメソッドがWPライフサイクルの早い段階で動作可能かどうかははっきりとはわかりませんが、失敗した場合は、_SERVERを使用してURLを取得し、カテゴリパターンをテストしてください。

0
SplinterReality