我为一个网站开发了一个自定义插件,该插件使用WordPress中的URL重写来创建几个动态页面。加载其中一个自定义页面时,我将使用以下函数和过滤器创建自定义页面标题和元描述:
// page title
add_filter(\'pre_get_document_title\',array(&$this,\'mp_custom_page_title\'));
add_filter(\'document_title_parts\',array(&$this,\'mp_custom_change_document_title_parts\'));
// meta tags
add_filter(\'description_tag_filter\',array(&$this,\'mp_custom_description_metatag\'));
add_action(\'wp_head\',array(&$this,\'mp_custom_metatag_display\'),0);
这可以很好地创建自定义的、动态生成的页面标题和元描述。也就是说,直到我启用任何SEO插件(Yoast、All-in-One、Rank Math等)。
我需要在博客和网站上的标准页面上使用这些插件,但我只想在我的一个自定义页面/URL正在运行时禁用它们。我遇到了以下代码:
// JetPack
remove_action(\'wp_head\',\'jetpack_og_tags\');
// Yoast SEO
if (defined(\'WPSEO_VERSION\'))
{
global $wpseo_front;
remove_action(\'wp_head\',array($wpseo_front,\'head\'),1);
}
// All-In-One SEO
if (defined(\'AIOSEOP_VERSION\'))
{
global $aiosp;
remove_action(\'wp_head\',array($aiosp,\'wp_head\'));
}
我尝试在调用自定义页面的函数中运行它,以及在mp\\u custom\\u page\\u title和mp\\u custom\\u metatag\\u display函数中运行它,但没有成功。
如何在这些页面上禁用这些插件?非常感谢您的任何见解!
最合适的回答,由SO网友:Dexter 整理而成
对于可能感兴趣的任何人,我可以使用mp\\u custom\\u page\\u title中的以下代码来解决此问题:
// JetPack
remove_action(\'wp_head\',\'jetpack_og_tags\');
// Yoast SEO
if (defined(\'WPSEO_VERSION\'))
{
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);
}
add_filter(\'wpseo_opengraph_url\',\'__return_false\');
add_filter(\'wpseo_opengraph_desc\',\'__return_false\');
add_filter(\'wpseo_opengraph_title\',\'__return_false\');
add_filter(\'wpseo_opengraph_type\',\'__return_false\');
add_filter(\'wpseo_opengraph_site_name\',\'__return_false\');
add_filter(\'wpseo_opengraph_image\',\'__return_false\');
add_filter(\'wpseo_opengraph_author_facebook\',\'__return_false\');
add_filter(\'Yoast\\WP\\Woocommerce\\product_condition\',\'__return_false\');
}
// All-In-One SEO
if (defined(\'AIOSEOP_VERSION\'))
{
remove_action(\'wp_head\',array($aiosp,\'wp_head\'));
}
remove_action(\'wp_head\',\'rel_canonical\');
remove_action(\'wp_head\',\'index_rel_link\');
remove_action(\'wp_head\',\'start_post_rel_link\');
remove_action(\'wp_head\',\'adjacent_posts_rel_link_wp_head\');
此处列出了有用的Yoast函数:
https://gist.github.com/amboutwe/811e92b11e5277977047d44ea81ee9d4