如何从wp_head()获取单个钩子?

时间:2016-05-04 作者:Aziz

我正在处理一个自定义的帖子类型,我不想让它变得杂乱无章wp_head(). 然而,我确实想显示一个特定的钩子,例如YoastSEO元标记。

如何在没有wp_head()? 我尝试将筛选器添加到wp_head 移除我不想要的部件,例如:

if ( \'customtype\' === get_post_type() )
{ 
      remove_action( \'wp_head\', \'rsd_link\' );
      remove_action( \'wp_head\', \'feed_links\' );
      remove_action( \'wp_head\', \'wlwmanifest_link\' );
      remove_action( \'wp_head\', \'wp_generator\' );
      remove_action( \'wp_head\', \'start_post_rel_link\' );
      remove_action( \'wp_head\', \'index_rel_link\' );
      remove_action( \'wp_head\', \'adjacent_posts_rel_link\' );
      remove_action( \'wp_head\', \'wp_shortlink_wp_head\' );
}
然而,这似乎效率低下,我必须维护任何额外的插件或函数,以操纵或添加操作wp_head().

是否有办法删除所有操作并保留我想要的操作?我宁愿不包括wp_head 只要调用自定义帖子类型所需的任何操作即可。

2 个回复
最合适的回答,由SO网友:Mark Kaplun 整理而成

wp_head 是主题的一个重要部分,如果没有它,有太多的东西可能会分崩离析。一个接一个地寻找和修复它们可能很耗时,而且所有操作的价值都值得怀疑。

例如,在你的代码片段中,你想删除那些只针对一个CPT删除没有意义的东西,如果你在其他帖子类型上有它们,那么没有真正的理由不将它们放在那个帖子类型上。

SO网友:cjbj

因为插件直接钩住wp_head 如果没有它,就不会发生任何事情,除非您更改插件代码。因此,您必须在主题中创建自己的挂钩,然后扫描Yoast文件以查找对wp\\u head的任何调用并更改它们。但不推荐。

更好的做法是自己生成这些元标记。他们很直截了当。

相关推荐

Apply filters on date format

我使用Wordpress主题,其中格式日期和时间直接编码为两种格式:<?php the_time(\'d M\'); ?> <?php the_time(\'H:i\'); ?> 我想要的:显示wordpress选项中定义的日期和时间我不想在子主题中创建修改过的模板,我更喜欢使用函数。我已经在函数中添加了php。php此代码有效:add_filter( \'the_time\', \'changer_date_format\', 10, 1 ); //o