0

我被请来为客户的现有网站制作一个快速的 Wordpress 主题。使用现有网站的 CSS 和 JS 以及 HTML 框架,我能够让主题以几乎所有方式工作,除了一些。对于初学者,我似乎无法“小部件化”侧边栏。

在尝试注册小部件之前,侧边栏的 HTML 如下:

<div class="wms-column wms-column-nav">
    <div class="wms-column-nav-body">
      <h2><a href="/">Blog</a></h2>
    </div>
</div>

请记住,我可以在内部 div 中添加 html,但不能更改两个外部 div。他们必须留下。

在阅读了http://codex.wordpress.org/Widgetizing_Themes并尝试了几个示例之后,我得到的只是错误。自然,小部件区域因此拒绝在仪表板 > 外观中显示。

如何将上述代码转换为接受小部件的侧边栏?有 id="sidebar" 有必要吗?需要标题吗?Codex 页面似乎暗示您格式化标题的方式取决于整体方法(例如:div 与列表)。我得到的印象是您正在制作一个小部件反复使用的模板来踢出内容。我认为您只是在告诉 WP 将小部件放在哪里(并且它们的所有内容/格式/复杂性都在小部件的代码中处理)。

4

1 回答 1

1

小部件化主题基本上分为两个步骤。

  1. 注册您的侧边栏
  2. 将注册的侧边栏添加到主题

functions.php

来自 Codex 页面register_sidebar

 register_sidebar(array(
   'name' => __( 'Right Hand Sidebar' ),
   'id' => 'right-sidebar',
   'description' => __( 'Widgets in this area will be shown on the right-hand side.' ),
   'before_title' => '<h1>',
   'after_title' => '</h1>'
 ));

在您的主题模板中

添加对 的调用dynamic_sidebar。这可能会在sidebar.php

<div class="wms-column wms-column-nav">
    <div class="wms-column-nav-body"><?php
      dynamic_sidebar( 'right-sidebar' ); // your widgets will go here ?>
    </div>
</div>

请注意,其中使用的参数与注册侧边栏时使用的参数dynamic_sidebar匹配。id应该是这样的。当然,实现可能更复杂——包括例如硬编码的后备侧边栏或多个侧边栏——但这是基本的启动包。

于 2013-02-15T00:19:45.843 回答