All In One SEOを利用時に、とあるページだけcanonicalを出力させたくない

プラグインの All In One SEO では、canonical が設定できますが、
任意のページで ON/OFF 出来ないので、なんとかならないかと、

remove_action(‘wp_head’, ‘All_in_One_SEO_Pack::wp_head’);

とか試してみたのですが、どうにもならず悶々と調べておりましたところ、こんなやりとりを発見!
https://wordpress.org/support/topic/specify-canonical-url

なるほど。
All In One SEO には、フィルターフックに aioseop_canonical_url が用意されているようです。
では、All In One SEO のソースコードを見てみると、 aioseop_class.php にある、canonical を出力する部分には...

となっています。

if ( !empty( $url ) )  なので、add_filter で $url に null をかえすようにすれば、canonical のmetaタグは出力されないわけです。
とうことで、たとえば、postID が 306 の固定ページで、canonicalを表示しないようにしたければ、

というのを、function.phpなりに入れておけば、バッチリです!

タイトルとURLをコピーしました