子主题上的Inc.文件夹上的自定义文件

时间:2016-12-14 作者:skifast

我需要对保存在模板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
    }
}
我把这个放在了我的子函数上。php

require get_stylesheet_directory() . \'/inc/classes/widget-tabs.php\'; 
然后保存到child-theme/inc/classes/widget-tabs.php 我的编辑文件,但我有错误

致命错误:无法在/home/mysite/public\\html/wp content/themes/world/inc/classes/Widget选项卡中重新声明class TheWorld\\u Tabs\\u小部件。php第0行

1 个回复
SO网友:Cubakos

虽然这是一篇有点老的帖子,但有一些可能的解决方案:

对于您的具体问题,由于我看到的与原始小部件的唯一区别是,您不需要关于最近评论的“tab3”,而且每个div都有自己的id,因此您可以轻松地在css中输入如下内容:

#tab3 {display:none;}
现在,关于小部件的覆盖。

如果您有权访问父主题,可以将小部件包装在If语句中,如:

if(!class_exists(\'TheWorld_Tabs_Widget\')) { 
   class TheWorld_Tabs_Widget extends WP_Widget {...
   ...
}
然后,您的小部件将覆盖父小部件,并且不会引发任何错误。

如果您没有访问父主题的权限,您可以通过将名称更改为其他名称(例如:TheWorld\\u Tabs\\u widget\\u Child)对小部件的版本进行小的更改,然后将其用于您的主题或

首先尝试使用unregister_widget() 函数,在子主题函数文件中。这假设父主题中的小部件在widget_init. 例如:

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

相关推荐

Child-theme breaks site

所以,我有一个子主题,里面除了所需的CSS文件之外什么都没有。一旦我激活了这个儿童主题,我的整个网站就关闭了。最后我有两个问题:激活一个只有CSS的子主题怎么能破坏我的网站</我怎样才能回到我原来的主题</这些是网站给我的错误:Warning: require_once(/wp-content/themes/interio_child/admin/options-framework.php) [function.require-once]: 无法打开流:中没有此类文件或目录/wp-c