У меня есть тема WordPress, в которой есть несколько функций, которые мне нужно изменить (через дочернюю тему). Я бы предпочел не полностью заменить функцию, если она будет обновлена в будущем. Можно ли добавить код в функцию?
Спасибо!
Нет, добавить код в функцию невозможно.
Прежде всего, я рекомендую вам взглянуть на Детские темы документация .
Поведение дочерней темы во многом будет зависеть от того, где вы редактируете свои функции. Если вы используете functions.php, Wordpres заявляет, что:
В отличие от style.css, functions.php дочерней темы не переопределяет
его аналог от родителя. Вместо этого он загружается в дополнение к
функции родителя. (В частности, он загружается прямо перед
родительский файл.)
Итак, что вы можете сделать, это переопределить родительскую функцию, как указано Вот:
Скопируйте (полностью) функцию, которую вы хотите переопределить из родительской темы.
Вставьте его в functions.php в корне папки вашей дочерней темы. Если functions.php не существует, создайте его.
Переименуйте функцию из parent_theme_function в child_theme_function.
Деактивировать родительскую функцию.
Активируйте дочернюю функцию.
Ваш код должен выглядеть примерно так:
// Removes thematic_blogtitle from the thematic_header phase
function remove_thematic_actions() {
remove_action('thematic_header','thematic_blogtitle',3);
}
// Call 'remove_thematic_actions' during WP initialization
add_action('init','remove_thematic_actions');
// Add our custom function to the 'thematic_header' phase
add_action('thematic_header','fancy_theme_blogtitle', 3);
В этом примере функция thematic_blogtitle удаляется из функций и заменяется на fancy_theme_blogtitle.
Других решений пока нет …