我试图在单个页面上禁用 Wordpress Yoast SEO,因为它与不同的插件冲突。

我尝试按照这个 StackOverflow question ,将此代码添加到 functions.php :

add_action('template_redirect','remove_wpseo');

function remove_wpseo(){
    if ( is_page(944)) {
      global $wpseo_front;
      remove_action( 'wp_head', array($wpseo_front, 'head'), 2 ); // <-- check priority
    }
}

上面的不起作用,所以我然后遇到了 this post ,并尝试将其更改为下面,这当然导致了 500 错误。
add_action('template_redirect','remove_wpseo');

function remove_wpseo(){
   if ( is_page(5526)) {
     global WPSEO_Frontend::get_instance()
     remove_action( 'wp_head', array(WPSEO_Frontend::get_instance(), 'head'), 2 ); // <-- check priority
   }
}

关于如何在单个页面上禁用 Yoast SEO 的任何想法?我应该从 functions.php 还是其他地方执行此操作?我想我已经接近了,但还没有完全到位。

最佳答案

好吧,我发现我做错了什么。这是正在工作的更正代码:

add_action('template_redirect','remove_wpseo');

function remove_wpseo(){
    if (is_page(5526)) {
        global $wpseo_front;
            if(defined($wpseo_front)){
                remove_action('wp_head',array($wpseo_front,'head'),1);
            }
            else {
              $wp_thing = WPSEO_Frontend::get_instance();
              remove_action('wp_head',array($wp_thing,'head'),1);
            }
    }
}

谢谢!

10-06 08:05