サポート » プラグイン » All in One SEO Packが出力するcanonicalの不具合について

  • 解決済 msadayoshi

    (@msadayoshi)


    記事を分割した際に出力されるcanonicalタグの不具合に悩まされております。

    通常の記事URLが「〇〇〇.com/647/」このようであった場合、記事を分割すると「〇〇〇.com/647/2/」となるわけですが、
    なぜかcanonicalのurl部分だけが「〇〇〇.com/647/?page=2/」となってしまいます。

    canonicalを表示させるためにプラグインのAll in One SEO Packを使用しております。

    wordpressやプラグイン、phpのバージョンは全て最新に更新しており、テーマはTwenty Fifteenと使用しています。

    原因がお分かりになる方がいらっしゃいましたら、ご教授いただけますと幸いです。
    何卒よろしくお願い申し上げます。

    ※尚以前類似する質問を投稿しましたが、直接テーマにcanonicalを表示させるコードを記述することでは解決できなかったため今一度投稿させて頂いております。

6件の返信を表示中 - 1 - 6件目 (全6件中)
  • Honda

    (@rocketmartue)

    「ページネイションをCanonical URLsにしない」にチェックを入れるとどうなりますか?

    >「ページネイションをCanonical URLsにしない」にチェックを入れるとどうなりますか?

    上記にチェックを入れると、
    「〇〇〇.com/647/2/」このようなURLであった場合、Canonicalは「〇〇〇.com/647/」となります。

    設定はすべてチェックしておりますので、設定の不備ではございません。

    パーマリンク設定を数字ベースにした場合に、そのような URL になるようです。
    All in One SEO Pack プラグインの不具合の可能性が高そうです。プラグインサポートページで報告するといいかと思います。

    応急処置としては、下記のように aioseop_canonical_url フィルターフックで書き換えるといいかもしれません。

    function filter_aioseop_canonical_url( $url ) {
    	global $page;
    	if ( is_single() && $page >= 2 ) {
    		$url = wp_get_canonical_url();
    	}
    	return $url;
    }
    add_filter( 'aioseop_canonical_url', 'filter_aioseop_canonical_url', 10, 1 );

    ishitaka様
    ご教授いただきありがとうございます。

    >パーマリンク設定を数字ベースにした場合に、そのような URL になるようです。

    やはり不具合のようですね。
    後日プラグインサポートに投稿してみます。

    >応急処置としては、下記のように aioseop_canonical_url フィルターフックで書き換えるといいかもしれません。

    頂いたコードを試しましたが、
    「〇〇〇.com/647/2/」のようなページは希望通りのcanonical(〇〇〇.com/647/2/)になりましたが、
    記事分割をしていない記事に、例えば「〇〇〇.com/647/999/」にアクセスするとcanonicalが本来は重複回避のために「〇〇〇.com/647/」なのに「〇〇〇.com/647/999/」になってしまいますね。(記事分割をしていない記事URl末尾にランダムにページ送り番号を入れると)

    function filter_aioseop_canonical_url( $url ) {
    	global $page, $post;
    	if ( is_single() && $page >= 2 ) {
    		$post_page_count = substr_count( $post->post_content, '<!--nextpage-->' ) + 1;
    		if ( $page <= $post_page_count ) {
    			$url = wp_get_canonical_url();
    		} else {
    			$url = get_permalink( $post );
    		}
    	}
    	return $url;
    }
    add_filter( 'aioseop_canonical_url', 'filter_aioseop_canonical_url', 10, 1 );

    ishitaka様
    重ねてのご回答誠にありがとうございます。

    素晴らしいです。頂いたコードで問題はすべて解決されました。

    今回は大変参考になりました。
    この度は誠にありがとうございました。

6件の返信を表示中 - 1 - 6件目 (全6件中)
  • トピック「All in One SEO Packが出力するcanonicalの不具合について」には新たに返信することはできません。