Intereting Posts
WordPress + BlockUI или всплывающая страница get_results на больших наборах данных Скрыть сообщения администратора и страницы в Dashboard выберите пользователя со всем мета-полем и значением поля. Я использую Below Query для этого, так что любой из них знает другой способ быстрого запроса вместо запроса ниже? Добавление элементов управления в настройку темы Если определенный шаблон страницы активен Мои виджеты не открывают HELP в последней версии WordPress Query Distinct Таксономии пользовательского типа сообщения Как использовать wp_nav_menu для создания настраиваемого раскрывающегося меню? Получить категории третьего уровня WooCommerce Переиздание списков пользовательских таксономических списков Добавьте дату рождения участника из Backend и покажите его на переднем крае Запросы AJAX ломаются из-за HTTPS для wp-admin Как динамически создавать субдомен при создании пользователя в WordPress? Плюсы / минусы плагинов «WP e-commerce» и «Shopp» Обновление WordPress автоматически самостоятельно

Настроить файл в папке inc на дочерней теме

Мне нужно внести некоторые изменения в файл, который сохраняется на inc / classes в моем шаблоне.

Файл

<?php class TheWorld_Tabs_Widget extends WP_Widget { function __construct() { // Set up the widget options. $widget_options = array( 'classname' => 'widget-theworld-tabs tabs-widget', 'description' => __( 'Display popular posts, recent posts and tags in tabs.', 'theworld' ) ); // Create the widget. parent::__construct( 'theworld-tabs', // $this->id_base __( '&raquo; Tabs', 'theworld' ), // $this->name $widget_options // $this->widget_options ); } function widget( $args, $instance ) { extract( $args ); // Output the theme's $before_widget wrapper. echo $before_widget; ?> <ul class="tabs-nav"> <li class="active"><a href="#tab1" title="Popular"><i class="fa fa-thumbs-up"></i></a></li> <li><a href="#tab2" title="Latest"><i class="fa fa-clock-o"></i></a></li> <li><a href="#tab3" title="Comments"><i class="fa fa-comment"></i></a></li> <li><a href="#tab4" title="Tags"><i class="fa fa-tag"></i></a></li> </ul> <div class="tabs-container"> <div class="tab-content" id="tab1"> <?php the_widget( 'TheWorld_Popular_Widget', 'title=0&show_date=1&limit=5' ); ?> </div> <div class="tab-content" id="tab2"> <?php the_widget( 'TheWorld_Recent_Widget', 'title=0&show_date=1&limit=5' ); ?> </div> <div class="tab-content" id="tab3"> <?php the_widget( 'WP_Widget_Recent_Comments' ); ?> </div> <div class="tab-content" id="tab4"> <?php the_widget( 'WP_Widget_Tag_Cloud' ); ?> </div> </div> <?php // Close the theme's widget wrapper. echo $after_widget; } /** * Displays the widget control options in the Widgets admin screen. * * @since 1.0.0 */ function form( $instance ) { ?> <p><?php _e( 'No need to setting anything for this widget.', 'theworld' ); ?></p> <?php } } 

И мне нужно перейти на

 <?php class TheWorld_Tabs_Widget extends WP_Widget { function __construct() { // Set up the widget options. $widget_options = array( 'classname' => 'widget-theworld-tabs tabs-widget', 'description' => __( 'Display popular posts, recent posts and tags in tabs.', 'theworld' ) ); // Create the widget. parent::__construct( 'theworld-tabs', // $this->id_base __( '&raquo; Tabs', 'theworld' ), // $this->name $widget_options // $this->widget_options ); } function widget( $args, $instance ) { extract( $args ); // Output the theme's $before_widget wrapper. echo $before_widget; ?> <ul class="tabs-nav"> <li class="active"><a href="#tab1" title="Popular"><i class="fa fa-thumbs-up"></i></a></li> <li><a href="#tab2" title="Latest"><i class="fa fa-clock-o"></i></a></li> <li><a href="#tab4" title="Tags"><i class="fa fa-tag"></i></a></li> </ul> <div class="tabs-container"> <div class="tab-content" id="tab1"> <?php the_widget( 'TheWorld_Popular_Widget', 'title=0&show_date=1&limit=5' ); ?> </div> <div class="tab-content" id="tab2"> <?php the_widget( 'TheWorld_Recent_Widget', 'title=0&show_date=1&limit=5' ); ?> </div> <div class="tab-content" id="tab4"> <?php the_widget( 'WP_Widget_Tag_Cloud' ); ?> </div> </div> <?php // Close the theme's widget wrapper. echo $after_widget; } function form( $instance ) { ?> <p><?php _e( 'No need to setting anything for this widget.', 'theworld' ); ?></p> <?php } } 

Я положил это на мой child functions.php

 require get_stylesheet_directory() . '/inc/classes/widget-tabs.php'; 

И затем сохраните на child-theme/inc/classes/widget-tabs.php мой файл редактирования, но у меня есть ошибка

Неустранимая ошибка: не удается переопределить класс TheWorld_Tabs_Widget в /home/mysite/public_html/wp-content/themes/world/inc/classes/widget-tabs.php в строке 0

Solutions Collecting From Web of "Настроить файл в папке inc на дочерней теме"

Хотя это немного старый пост, есть несколько возможных решений:

  1. Для вашей конкретной проблемы, поскольку единственное отличие, которое я вижу от исходного виджета, это то, что вам не нужно «tab3» относительно последних комментариев, и поскольку каждый div имеет свой собственный идентификатор, вы можете легко добавить в свой css что-то вроде:

     #tab3 {display:none;} 
  2. Теперь, в отношении переопределения виджета.

    • Если у вас есть доступ к родительской теме, вы можете обернуть виджет в выражении if, например:

       if(!class_exists('TheWorld_Tabs_Widget')) { class TheWorld_Tabs_Widget extends WP_Widget {... ... } 

      то ваш виджет будет переопределять родительский, и никакая ошибка не будет выбрана.

      • Если у вас нет доступа к родительской теме, вы можете внести небольшое изменение в свою версию виджета, изменив имя на другое (например: TheWorld_Tabs_Widget_Child), а затем примените его к своей теме.

      ИЛИ

      • попробуйте сначала отменить регистрацию родительского виджета, используя функцию unregister_widget() в файле функций дочерних тем. Это предполагает, что виджет в родительской теме зарегистрирован в widget_init . как:

         function some_widget_unregister() { unregister_widget( 'TheWorld_Tabs_Widget' ); } add_action( 'widgets_init', 'some_widget_unregister', 99 );