Могу ли я фильтровать функцию, созданную темой или плагином?

Я использую очень современную и полнофункциональную тему с множеством пользовательских функций. Что-то вроде Авада, Энфолд и т. Д.

Эта функция называется medigroup_mikado_custom_breadcrumbs, которая вызывается в wp-content / themes / mytheme / framework / modules / title / title-functions.php, и я пытаюсь отфильтровать ее в функциях с помощью этого кода:

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

Однако, независимо от того, что я налагаю на эту функцию, она, похоже, не работает вообще.

Мой вопрос: могу ли я фильтровать функцию, называемую темой? Только для целей знания, что, если это был плагин? Могу ли я только фильтровать ядро?

Solutions Collecting From Web of "Могу ли я фильтровать функцию, созданную темой или плагином?"

Фильтры являются одним из двух типов крючков.

Они предоставляют возможность для функций изменять данные других функций.

Вы можете фильтровать любую функцию, которая применила фильтр к своим переменным во время определения функции.

Например, в функции get_bloginfo вы увидите фильтр, примененный к его выводу, перед get_bloginfo результата:

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

Вышеупомянутый метод apply_filters означает, что вы можете изменить выход, указав фильтр, например:

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

Это изменило бы выход get_bloginfo чтобы всегда возвращать «измененный» независимо от того, что это начальное значение. Вы можете узнать больше о add_filter и apply_filters .

Рекомендации:

То, что вы пытаетесь сделать, это не фильтрация, а обезьяна. Вы не можете обезвреживать через фильтрацию. Фильтр – это тип крюка, даже с именем. Некоторые фильтры имеют то же имя, что и функции, которые их называют, но это совпадение / соглашение

Если вы хотите изменить функцию, возвращаемую функцией через фильтр, эта функция должна передать то, что она возвращает в фильтр, чтобы ее можно было изменить. В эквиваленте «Я собираюсь отправить это, кто-нибудь хочет внести какие-либо изменения в последнюю минуту?». Если функция не делает этого, то это невозможно сделать с помощью фильтров без наложения кодовой базы