2015-01-13 3 views
0

мне нужно добавить фильтр к конкретной функции WordPress, которая определена в файл, который включен функциями подключаемой функции ТЕМЫ еКак фильтровать подключаемую функцию от WordPress ребенок-темы

functions.php:

if (!function_exists('nectar_colors_css_output')) { 
    function nectar_colors_css_output(){ 
     include('css/colors.php'); 
    } 
} 

colors.php:

<?php 
function nectar_colors() { 
    // not relevant what happens here, but I have 
    // to call another function before this one is called! 
} 
?> 

Я использую детскую тему и когда я пытаюсь фильтровать эту функцию из functions.php дочерней тЕМЫ, ничего не происходит. Это связано с тем, что вставляемые функции родительской темы будут называться после, вызывая фильтры из дочерней темы.

Моя функция фильтра в functions.php дочернего THEME является

function filter_function() { 
    // some custom actions... 
} 
add_filter('nectar_colors', 'filter_function'); 

Как я могу получить этот фильтр работает?

ответ

0

Что именно вы пытаетесь отфильтровать? Возможно, вы неправильно понимаете понятия.

Приведите свой пример. Родитель проверяет, существует ли функция до ее создания. Итак, если вы определяете его в теме вашего ребенка, родитель узнает, что он есть, и не будет создавать по умолчанию.

#themename-child 

function nectar_colors_css_output(){ 
    error_log("It worked!"); 
} 
+0

Это было бы решением, но это немного сложнее: Съемная функция родительского тема включает в себя еще один скрипт, который содержит функцию Мне нужно фильтровать. Мне нужно решение, которое вызывает функцию родительской темы до того, как будет использован фильтр моего ребенка. Я мог бы удалить if (! Function_exists ('nectar_colors_css_output')) {' , но я не хочу менять файлы родительской темы! – jannnik

+0

Извините за свою ошибку, я изменил вопрос :) – jannnik

+0

Извините за это, но я все еще не могу понять, что вы пытаетесь сделать. Я понял, что вы не можете изменить родительский код темы? В этом случае вы можете использовать только «крючки», которые они предоставили. Найдите 'do_action()' или 'apply_filter()'. –

Смежные вопросы