当我的主题被激活时,我如何插入默认窗口小部件(类似于21世纪所做的)?

时间:2011-12-05 作者:N2Mystic

当2111主题被激活时,它会在侧栏中插入几个默认的小部件。如何对主题进行编码以实现同样的效果?

3 个回复
最合适的回答,由SO网友:Nicole 整理而成

Johannes Pille是对的,TwentyEleven的小部件,如归档和元,都是硬编码到侧栏中的。php

下面是我要做的:

首先在函数中定义侧栏。php类似:

 if ( function_exists(\'register_sidebars\') )
    register_sidebar(array(
    \'name\'=>\'Left Sidebar\',
    \'before_title\' => \'<h2 class="label">\',
        \'after_title\' => \'</h2>\',
    \'description\' => \'Items placed here will be shown in the left sidebar.\'));
正如您在上面的代码中所看到的,您将侧栏命名为“左侧侧栏”。您可以将其更改为您想要的任何内容,但我通常选择使用放置术语,这样我就知道小部件将显示在页面的哪个部分。

接下来,您需要将此内容放在您希望侧栏显示的主题中:

<?php if(function_exists(\'dynamic_sidebar\') && dynamic_sidebar(\'Left Sidebar\')):else: ?>
现在你要把这个放在下面:

<li id="calendar">
        <h2>
          <?php _e(\'Calendar\'); ?>
        </h2>
        <?php get_calendar(); ?>
      </li>
      <?php wp_list_pages(\'title_li=<h2>Pages</h2>\'); ?>
      <li>
        <h2>
          <?php _e(\'Categories\'); ?>
        </h2>
        <ul>
          <?php wp_list_cats(\'sort_column=name&optioncount=1&hierarchical=0\'); ?>
        </ul>
      </li>
      <li>
        <h2>
          <?php _e(\'Archives\'); ?>
        </h2>
        <ul>
          <?php wp_get_archives(\'type=monthly\'); ?>
        </ul>
      </li>
      <?php get_links_list(); ?>
      <li>
        <h2>
          <?php _e(\'Meta\'); ?>
        </h2>
        <ul>
          <?php wp_register(); ?>
          <li>
            <?php wp_loginout(); ?>
          </li>
          <?php wp_meta(); ?>
        </ul>
      </li>
      <?php endif; ?>
    </ul>
The

关闭此字符串开头的“if”函数。这样做的目的是,如果侧栏中没有widegts位置,这些默认位置将出现,直到添加一个为止。

如果您希望他们一直在那里,而没有人更改它,但仍然希望他们能够添加自己的内容,您可以将硬编码的小部件放在“If”语句之外,如下所示:

<li id="calendar">
        <h2>
          <?php _e(\'Calendar\'); ?>
        </h2>
        <?php get_calendar(); ?>
      </li>
      <?php wp_list_pages(\'title_li=<h2>Pages</h2>\'); ?>
      <li>
        <h2>
          <?php _e(\'Categories\'); ?>
        </h2>
        <ul>
          <?php wp_list_cats(\'sort_column=name&optioncount=1&hierarchical=0\'); ?>
        </ul>
      </li>
      <li>
        <h2>
          <?php _e(\'Archives\'); ?>
        </h2>
        <ul>
          <?php wp_get_archives(\'type=monthly\'); ?>
        </ul>
      </li>
      <?php get_links_list(); ?>
      <li>
        <h2>
          <?php _e(\'Meta\'); ?>
        </h2>
        <ul>
          <?php wp_register(); ?>
          <li>
            <?php wp_loginout(); ?>
          </li>
          <?php wp_meta(); ?>
        </ul>
      </li>

    </ul>
<?php if(function_exists(\'dynamic_sidebar\') && dynamic_sidebar(\'Left Sidebar\')):else: ?>
<?php endif; ?>
我建议您在此处查看WordPress Codex函数参考,以便将这些添加到您的主题中(如果您需要其他内容):http://codex.wordpress.org/Function_Reference#Theme-Related_Functions

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

Here is how to have a set of default widgets for in the admin area.

首先,您必须知道WordPress附带12个标准小部件。您可以在此处查看它们:http://codex.wordpress.org/Function_Reference/the_widget

如果您想删除一些标准小部件,请看下面的操作方法:

function remove_some_wp_widgets(){
unregister_widget(\'WP_Widget_Calendar\'); //removes calendar widget
unregister_widget(\'WP_Widget_Search\'); // removes the search widget
unregister_widget(\'WP_Widget_Recent_Comments\'); // removes recent comments widget 
}

add_action(\'widgets_init\',remove_some_wp_widgets\', 1);
您可以将上述代码添加到函数中。你的主题的php文件。这将隐藏它们。(不一定要移除)

如果您想向管理区域添加自定义小部件,我建议您阅读这篇关于如何注册新小部件的文章。

http://dev7studios.com/resources/wordpress-development-for-designers-part-1/

SO网友:mgyura

在您的主题侧边栏页面中,您可以检查侧边栏中的小部件是否处于活动状态,然后执行if、else。

//Check to see if your sidebar "main" is active.  Change to match your registered sidebar
if (is_active_sidebar(\'main\')) {

    //echo holder div.  Give it a class for css
    echo \'<div class="homeSidebar">\';
    dynamic_sidebar(\'main\');
    echo \'</div>\';
}

//if there is no active widget in this side bar, use this one.  
else {
    echo \'<div class="homeSidebar">\';

    //Run the_widget() to bring in the widget you want by default.  Take a look at http://codex.wordpress.org/Function_Reference/the_widget for more info
    the_widget(\'WP_Widget_Archives\');
    echo \'</div>\';
}

SO网友:Johannes Pille

标题为“Archives”和“Meta”的(伪)小部件被硬编码到TwentyEleven的侧栏中。php。

结束

相关推荐