在wordpress

时间:2016-09-08 14:12:41

标签: php wordpress function themes

我在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 );

提前多多感谢。

1 个答案:

答案 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