Deaktivieren Sie eine Theme-Funktion in einer Child-Theme-functions.php in WordPress

Lesezeit: 3 Minuten

Benutzer-Avatar
Andres Molina Perez-Tome

Ich hatte ein Problem mit meinem Theme in WordPress, das seine eigenen og:meta-Beschreibungen auf meinem Theme anzeigte, so dass es aufgrund von All-in-One-SEO-Plugins dupliziert wurde.

Ich wollte die aus dem Thema deaktivieren, aber ich wusste nicht wie, also schaffe ich es, die Funktion in der PHP-Datei zu finden, die dies auslöst, um sie auf der Website anzuzeigen, aber ich weiß nicht, wie ich sie von den Funktionen deaktivieren kann. php oder mein Child-Theme, damit es beim Update nicht überschrieben wird. Die fragliche Funktion ist die folgende

// 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 );

Vielen Dank im Voraus.

Benutzer-Avatar
William Patton

Diese Funktion hat tatsächlich eine eingebaute Möglichkeit, kurzzuschließen und vorzeitig zurückzukehren. Wenn der Wert von false wird zum Filter geleitet aurum_open_graph_meta if wird zurückgegeben, bevor eine Ausgabe erstellt wird.

add_filter( 'aurum_open_graph_meta',  '__return_false' );

Sie können über das Besondere lesen __return_false() Funktion hier: https://codex.wordpress.org/Function_Reference/_return_false

Wenn diese Funktion kein Flag für vorzeitige Rückkehr hätte, wäre eine alternative Methode, um ihre Ausführung zu stoppen, das Entfernen der Aktion, die die Funktion erstellt. Dies wäre eine universellere Methode, die auf die meisten Aktionen angewendet werden könnte, die irgendwo in WordPress registriert sind.

Fügen Sie Ihre eigene Aktion hinzu, die ausgeführt wird nachdem die zu entfernende Aktion hinzugefügt wurde, aber bevor sie ausgeführt wird.

In diesem Fall können Sie die verwenden init Haken, um das zu erreichen. Rufen Sie innerhalb Ihrer Aktionsfunktion an remove_action() mit den Details oder dem Haken, den Sie entfernen möchten.

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

Beachten Sie, dass die Aktion auf demselben entfernt werden muss $priority wie es hinzugefügt wurde (in diesem Fall ‘5’). Versuchen Sie, den obigen Code zur Datei functions.php Ihres untergeordneten Themas hinzuzufügen, und prüfen Sie, ob die Aktion dadurch entfernt wird.

Wenn Sie nur php>5.3 unterstützen, können Sie diesen Code mit einem bereinigen Anonyme Funktion:

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

Etwas zusätzliche Lektüre zum Hinzufügen/Entfernen von Aktionen in WordPress: https://codex.wordpress.org/Function_Reference/remove_action

  • Holly Molly…. Holly Sh….. omg.. Du bist ein Star-Mann.. Ich bin nicht wirklich gut in PHP-Programmierung und ich habe all diese Seiten gelesen, was für mich nichts bedeutet, Test für Test zu machen und nichts davon gearbeitet … VIELEN DANK, ich schulde dir ein Abendessen ….

    – Andres Molina Perez-Tome

    8. September 2016 um 14:51 Uhr

  • Kein Problem, freut mich, dass ich dir bei der Lösung helfen konnte. Ich kenne den Schmerz, Dinge auszuprobieren und Test für Test durchzuführen, ohne eine Lösung zu finden, so glücklich, dass ich helfen konnte, zur Lösung zu gelangen.

    – William Patton

    8. September 2016 um 14:55 Uhr

1095990cookie-checkDeaktivieren Sie eine Theme-Funktion in einer Child-Theme-functions.php in WordPress

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy