簡體   English   中英

從wordpress中的子主題functions.php禁用主題功能

[英]Disable a theme function in from a child theme functions.php in wordpress

我在wordpress中遇到了我的主題問題,它顯示了自己的og:我的主題的元描述,所以它由於所有的一個seo插件而被復制。

我想禁用主題中的那些,但我不知道如何,所以我設法在php文件上找到觸發此功能在網站上顯示的功能,但我不知道如何從功能中禁用它。 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 );

非常感謝提前。

這個功能實際上有一種內置的短路和早期返回方式。 如果將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> 5.3,那么您可以使用匿名函數清理該代碼:

add_action( 'init', function() { 
    remove_action( 'wp_head', 'aurum_wp_head_open_graph_meta', 5 );
}

關於在WordPress中添加/刪除操作的一些額外閱讀: https//codex.wordpress.org/Function_Reference/remove_action

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM