web-dev-qa-db-ja.com

ホームページでrel = nextを削除し、他は削除しない

あなたのホームページをYour Latest Postsに設定してほしいWordPressのためのほとんどの新しいテンプレートには大きな問題があります。

これは、すばらしいテーマ機能の多くを機能させるためです。

これに関する問題は、(ブログページではないにしても)フロントページがワードプレスコアとヨーヨーseoによってページングされたエンティティとして見られることです。

だからこれはどういう意味ですか?

あなたがあなたのページにアクセスして、あなたが見るソースコードの中を見るなら、あなたはホームページwww.mysite.comを持っていますrel="next" href="hxxps://www.mysite.com/page/2/"

実際にその/ page/2リンクをクリックすると、今度はソースコードを見ればrel="prev" href="hxxps://www.mysite.com/"rel="next" href="hxxps://www.mysite.com/page/3/"以外にフロントページに戻ることができます。

/page/3/へのリンクをクリックすると、もう一度ソースコードを調べると、rel="prev" href="hxxps://www.mysite.com/page/2/"rel="next" href="hxxps://www.mysite.com/page/4/"が表示されます。

これは継続的に発生し、エンドユーザーが見ることのないものではありませんが、検索エンジン、特にGoogleがこれを重複したコンテンツと見なす可能性がある場合は非常に望ましくありません。

私はこの問題について数週間Yoastとサポート協議を続けてきましたが、彼らはそれがテーマの問題であり、テーマ開発者がwp_enqueueを正しく使用していないと非難しています。ほとんどの部分で私はそれがそれだと思いますが、それはまたそこにある最も人気のあるワードプレスのテーマの大多数がこれと全く同じ問題を抱えていることを意味します。

これを回避する唯一の現在の方法は、ワードプレスの読み設定に入り、あなたのフロントページをstatic pageに、そしてあなたの投稿ページをyour posts pageに設定することです。簡単ですが、カスタマイズに1週間を費やした、または高額の支払いをした、非常に優れたテンプレートのすてきな機能をすべて失うことになります。

それでそれは解決策かもしれませんが、それは本当に解決策ではありません、そしてそれはほとんどのテーマ開発者がこれを回避する方法を知らないようです。

私は私の過去のテーマTemperaでこの問題を抱えていました、私はGraphPaperPressからいくつかの新しいテーマに切り替えて、それからまた最も人気のあるテーマの1つZerifを試してみました、そしてそれらはすべてこの問題を抱えています。

Functions.phpであらゆる種類のコードスニペットを試してみたところ、rel = nextとrel = prevがフロントページに表示されないようにすることができますが、/ blog/pageのように他のすべてのページでも機能しません。検索エンジンにクロールを深く保つように指示するために、rel = nextおよびrel = prevリンクも必要とするすべてのカテゴリページにこれらのメタリンクが必要です。

動的フロントページと同じように、静的フロントページに切り替えて見栄えのよいフロントページを作成することができますが、機能性が非常に失われています。今日利用可能な視差のもの。

そのため、ホームページからのみ削除するだけで、/ blog// category1// category2 /のようなページに表示する簡単な機能が実際にあります。

これは私が試したことのあるものですが、私はただ条件付きステートメントを正しく得ていないか、または私は他の何か間違ったことをしていますが、今これを診断するには長すぎました。

function wpseo_disable_rel_next_home( $link ) {
  if ( is_home() ) {
    return false;
  }
}
add_filter( 'wpseo_next_rel_link', 'wpseo_disable_rel_next_home' );

そして

function genesis () {
if ( !is_home() || !function_exists( 'genesis' ) )
            $this->adjacent_rel_links();
}

そして

if ( is_front_page() && is_home() )
{
remove_action( 'wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0 );
remove_action(‘wp_head’, ‘cor_rel_next_prev_pagination’);
}

誰かがこの謎を解決できることを願っています。これをテストしたい人は誰でもZerifテーマをダウンロードして、Yoastもインストールされていることを確認することができます。動的なフロントページシステムを使用してから、別のブログリストページ用のブログページを作成します。

1
MitchellK

これが答えです。

function bg_disable_front_page_wpseo_next_rel_link( $link ) {
    if ( is_front_page() ) {
        return false;
    }

    return $link;
}
add_filter( 'wpseo_next_rel_link', 'bg_disable_front_page_wpseo_next_rel_link' );

あなたが$ linkを返さなければならない、あなたが何も返さなければそれはすべての単一のページのためにそれを無効にするでしょう...

2
NiteRaven

Wpseo_next_rel_linkでもう一度試してみることができます。

function wpseo_disable_rel_next_hom () {
  if ( is_home() || is_front_page() ) {
    return '';
  }
}
add_filter('wpseo_next_rel_link', 'wpseo_disable_rel_next_hom');

そして私が知っているようにもう1つのことはYoast SEOプラグインの問題ではないということです。あなたはWordPressのデフォルトのテーマで試してみることができますし、その後、あなたは異なるが表示されます。

0
Mohammad Limon