Kann ich eine function filtern, die durch ein Thema oder ein Plugin erstellt wurde?

Ich verwende ein sehr modernes und voll ausgestattetes Theme mit vielen benutzerdefinierten functionen. Etwas wie Avada, Enfold usw.

Es gibt diese function namens medigroup_mikado_custom_breadcrumbs , die unter wp-content / themes / mytheme / framework / modules / title-title-functions.php aufgerufen wird und ich versuche, sie in functionen mit diesem Code zu filtern:

function custom_debug_breadcrumb($breadcrumb) { $breadcrumb = "test"; return $breadcrumb; } add_filter('medigroup_mikado_custom_breadcrumbs', 'custom_debug_breadcrumb', 10); 

Aber egal, was ich auf diese function setze, es scheint überhaupt nicht zu laufen.

Meine Frage ist, kann ich eine function, die von einem Thema aufgerufen wird, filtern? Nur für Wissenszwecke, was wäre wenn es ein Plugin wäre? Kann ich nur Core filtern?

Solutions Collecting From Web of "Kann ich eine function filtern, die durch ein Thema oder ein Plugin erstellt wurde?"

Filter sind eine der beiden Arten von Haken.

Sie bieten eine Möglichkeit für functionen zum Ändern von Daten anderer functionen.

Sie können jede function filtern, die während der functionsdefinition einen Filter auf ihre Variablen angewendet hat.

In der function get_bloginfo würde beispielsweise ein Filter auf seine Ausgabe angewendet, kurz bevor die Ausgabe zurückgegeben wird:

 $output = apply_filters( 'bloginfo', $output, $show ); 

Der obige apply_filters-Aufruf bedeutet, dass Sie die Ausgabe ändern können, indem Sie einen Filter wie folgt definieren:

 function wpse253559_define_filter( $output, $show ) { return 'altered'; } add_filter( 'bloginfo', 'wpse253559_define_filter', 10, 2 ); 

Dies würde die Ausgabe von get_bloginfo um immer “geändert” zurückzugeben, egal was der Anfangswert ist. Sie können mehr über add_filter und apply_filters .

Verweise:

Was Sie versuchen, ist nicht Filterung, sondern Monkeypatching. Sie können nicht über Filter filtern. Ein Filter ist eine Art von Haken, ein sogar mit einem Namen. Einige Filter haben den gleichen Namen wie die functionen, die sie aufrufen, aber dies ist eine Übereinstimmung / Konvention

Wenn Sie das, was die function über einen Filter zurückgibt, ändern möchten, muss diese function das, was sie zurückgibt, an einen Filter übergeben, damit sie geändert werden kann. Das Äquivalent zu sagen “Ich bin dabei, dies zu versenden, will jemand letzte Änderungen vornehmen?”. Wenn die function dies nicht tut, kann sie nicht über Filter durchgeführt werden, ohne die Codebasis zu fälschen