Ersetzen einer WordPress-Kernfunktion

Lesezeit: 1 Minute

Ich versuche, den Anhang der WP-Kernfunktion wp_delete zu ersetzen. In meiner functions.php-Datei füge ich den folgenden Code hinzu:

add_action( 'init', 'remove_my_action' );

function remove_my_action(){
    remove_action( 'delete_attachment', 'wp_delete_attachment' );
    add_filter('delete_attachment','wp_delete_attachment',10,2); 
}

And then the copy of the replaced function goes here with edited code.

Das funktioniert nicht. Ich bekomme den Fehler: Kann wp_delete_attachment() nicht neu deklarieren. Ich habe eine Reihe anderer Methoden ausprobiert, aber ich bekomme es nicht zum Laufen.

Die Quintessenz ist, dass ich der Mitte der Funktion wp_delete_attachment etwas Code hinzufügen muss. Wenn ich diese Funktion irgendwie durch meine Version ersetzen oder den Code zu der vorhandenen Funktion hinzufügen kann, ohne den eigentlichen Code in der Datei wp-includes/post.php zu bearbeiten (damit Versionsaktualisierungen meinen Code nicht überschreiben), wäre ich zufrieden mit entweder. Wie kann dies geschehen? Alle Optionen, die ich durch Fragen gefunden habe, haben das Problem nicht gelöst. Vielen Dank!!

Sie müssen Ihren Namen nennen Kopieren von wp_delete_attachment zu einem eindeutigen Namen. Benennen Sie es vielleicht mit Ihrem Site-Namen wie function my_site_wp_delete_attachment().

Außerdem glaube ich, dass Sie verwenden müssen add_action Anstatt von add_filter.

remove_action( 'delete_attachment', 'wp_delete_attachment' );
add_action( 'delete_attachment', 'my_site_wp_delete_attachment'); 

  • Vielen Dank!! Das hat mich zu meiner Lösung gebracht!!

    – Jedediah Zilberberg

    30. Mai 2017 um 17:22 Uhr

  • Ich habe diese Antwort akzeptiert, da sie das Problem „Neudeklarieren“ löst, aber es scheint, dass die ursprüngliche Funktion, die ersetzt werden sollte, noch ausgeführt wird.

    – Jedediah Zilberberg

    9. Juni 2017 um 20:27 Uhr

1428530cookie-checkErsetzen einer WordPress-Kernfunktion

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

Privacy policy