我在wordpress中遇到了我的主题问题,它显示了我自己的og:我的主题的元描述,所以它会因为所有的一个seo插件而重复。
我想禁用主题中的那些,但我不知道如何,所以我设法在php文件上找到触发此功能在网站上显示的功能,但我不知道如何禁用它functions.php或我的子主题,因此在更新时不会过分严格。有问题的功能如下
// Open Graph Meta
function aurum_wp_head_open_graph_meta() {
global $post;
// Only show if open graph meta is allowed
if ( ! apply_filters( 'aurum_open_graph_meta', true ) ) {
return;
}
// Do not show open graph meta on single posts
if ( ! is_singular() ) {
return;
}
$image = '';
if ( has_post_thumbnail( $post->ID ) ) {
$featured_image = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), 'original' );
$image = esc_attr( $featured_image[0] );
}
?>
<meta property="og:type" content="article"/>
<meta property="og:title" content="<?php echo esc_attr( get_the_title() ); ?>"/>
<meta property="og:url" content="<?php echo esc_url( get_permalink() ); ?>"/>
<meta property="og:site_name" content="<?php echo esc_attr( get_bloginfo( 'name' ) ); ?>"/>
<meta property="og:description" content="<?php echo esc_attr( get_the_excerpt() ); ?>"/>
<?php if ( '' != $image ) : ?>
<meta property="og:image" content="<?php echo $image; ?>"/>
<?php endif;
}
add_action( 'wp_head', 'aurum_wp_head_open_graph_meta', 5 );
提前多多感谢。
答案 0 :(得分:4)
这个功能实际上有一种内置的短路和早期返回方式。如果false
的值传递给过滤器aurum_open_graph_meta
,则会在创建任何输出之前返回。
add_filter( 'aurum_open_graph_meta', '__return_false' );
您可以在此处阅读有关特殊__return_false()
功能的信息:https://codex.wordpress.org/Function_Reference/_return_false
如果此函数没有早期返回标志,则停止执行的另一种方法是删除该函数创建的操作。这将是一种更通用的方法,可以应用于WordPress中任何位置注册的大多数操作。
添加您自己的操作,该操作在您要删除的操作添加后但在执行之前运行。
在这种情况下,您可以使用init
挂钩来实现这一目标。在您的操作功能中,使用您要删除的详细信息或挂钩调用remove_action()
。
add_action( 'init', 'remove_my_action' );
function remove_my_action(){
remove_action( 'wp_head', 'aurum_wp_head_open_graph_meta', 5 );
}
请注意,需要在添加的$priority
上删除操作(在本例中为“5”)。尝试将上面的代码添加到子主题的functions.php文件中,看看它是否删除了操作。
如果您只支持php&gt; 5.3,那么您可以使用anonymous function来清理该代码:
add_action( 'init', function() {
remove_action( 'wp_head', 'aurum_wp_head_open_graph_meta', 5 );
}
关于在WordPress中添加/删除操作的一些额外阅读:https://codex.wordpress.org/Function_Reference/remove_action