2013-04-13 3 views
2

Я использую тему под названием «база представлений». Документация находится здесь: http://wp-types.com/documentation/views-inside/views-base-theme/views-base-customization/Как вы изменяете класс темы WordPress с дочерней темой?

Я создал дочернюю тему, и я пытаюсь понять, как добавить новую область виджета в тему.

Файл functions.php родительской темы имеет следующую строку: require_once ('class_base_theme.php');

Этот файл содержит класс class_base_theme с свойством $ sidebar_array с массивом всех областей виджетов.

Я могу легко добавить в новый регион этого родительского класса, просто добавив его в свойство $ sidebar_array. Но я не могу понять, как продлить и изменить этот класс в дочерней теме. Я не могу сделать это в файле functions.php моей дочерней темы, потому что он вызывается перед файлом functions.php родителя.

+0

Я смог выполнить то, что мне нужно, скопировав файл class_base_theme.php в мою дочернюю тему, а затем выполнил require_once ('class_base_theme.php') в файле functions.php моей дочерней темы. Есть ли лучший способ сделать это? – StevieD

+0

Я хотел бы знать ответ на этот вопрос, кто-нибудь знает лучший/правильный способ сделать это? – Keet

+0

Собственно, это зависит от родительской темы. Если родитель использует 'if (! Class_exists ('class_name'))' перед загрузкой класса, то это сработает, но если нет, вы получите ошибку, пытающуюся переопределить класс. Я бы предложил расширить класс. Создайте новый php-файл в своей теме, используйте его, затем расширьте класс родителя таким образом, как 'Child_Class расширяет Parent_Class {}' –

ответ

1

Собственно, это зависит от родительской темы. Если родитель использует, если (!class_exists('class_name')) перед загрузкой класса, то он будет работать, но если нет, вы получите сообщение об ошибке, чтобы обновить класс. Я бы предложил расширить класс. Создайте новый файл PHP в вашей теме, требуют его, а затем расширить класс родительского процесса таким образом, как Child_Class extends Parent_Class {}

Теперь из вашего нового класса Child_Class вы должны быть в состоянии получить доступ к $ sidebar_array и делать все, что вы хотите с ним, как а также использовать функции класса родителя, если это необходимо.

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