WordPress首页内页显示不同侧边栏内容
想要实现WordPress首页内页显示不同侧边栏内容,并不一定要用WP的插件,简单的几行代码就可以实现,最主要的是使用代码不会增加主机资源的过多占用。
首先要说明的是, 以下操作目前只能通过修改 sidebar.php 或相关代码达到目的. 下面我们来个例子吧, 假如现在的 Widget 结构如下:
<div class="widget xxx_widget">
<h3>Widget Title</h3>
<ul>
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
</ul>
</div>
如果我们要在首页显示 Archives, 单篇文章显示 Categories, 其他页面显示 Meta, 则需要改动代码如下:
<?php if (is_home()) : ?>
<div>
<h3>Archives</h3>
<ul>
<?php wp_get_archives(); ?>
</ul>
</div>
<?php else if (is_single()) : ?>
<div>
<h3>Categories</h3>
<ul>
<?php wp_list_cats(); ?>
</ul>
</div>
<?php else : ?>
<div>
<h3>Meta</h3>
<ul>
<?php wp_register(); ?>
<li><?php wp_loginout(); ?></li>
</ul>
</div>
<?php endif; ?>
其实关键在 is_home() 和 is_single() 方法的调用,,通过 if 语句限制显示条件.。你可以将它们换成其他限制条件,,以达到不页面的不同地方显示不同内容的目的,,而不仅仅是侧边栏.。如果是在主页和页面就是这样的:<?php if (is_home() || is_page() ) : ?>,page后的()里填上页面的ID,就可以只在特定页面显示。同样的道理适用于Archive 页面,只要这个你弄懂了,其他的就小菜一碟了。
创建新的sidebar文件,调整函数调用
实现不同页面调用不同侧边栏的想法很简单:注册一个新的侧边栏 sidebar2.php,然后在需要调用 sidebar2 的页面代替原来的 sidebar。
步骤:
1、注册一个新的侧边栏 sidebar2。
在主题文件夹下的 function.php 中找到类似以下代码:
if ( function_exists(‘register_sidebar’) )
register_sidebar(array(
‘before_widget’ => ‘<div class=”widget”>’,
‘after_widget’ => ‘</div>’,
‘before_title’ => ‘<h3>’,
‘after_title’ => ‘</h3>’,
));
然后以相同的格式再注册添加一个 sidebar2。例如:
if ( function_exists(‘register_sidebar’) )
register_sidebar(array(
‘name’ => ‘sidebar2′,
‘before_widget’ => ‘<div class=”widget”>’,
‘after_widget’ => ‘</div>’,
‘before_title’ => ‘<h3>’,
‘after_title’ => ‘</h3>’,
));
2、新建 sidebar2.php 调用新注册的 sidebar2。
在 sidebar.php 中找到以下代码:
<div class=”sidebar”>
<?php include_once(“tab.php”); ?>
<?php if ( function_exists(‘dynamic_sidebar’) && dynamic_sidebar() ) :else : ?>
<?php endif; ?>
</div>
然后以相同的格式新建 sidebar2.php 文件调用 sidebar2。例如:
<div class=”sidebar”>
<?php include_once(“tab.php”); ?>
<?php if ( function_exists(‘dynamic_sidebar’) &&dynamic_sidebar(sidebar2) ) : else : ?>
<?php endif; ?>
</div>
3、最后,在需要的页面调用 sidebar2.php 文件。
这里以 page.php 为例调用 sidebar2.php。在 page.php 中找到如下代码:
<?php get_sidebar(); ?>
修改为:
<?php include_once(“sidebar2.php”); ?>
如果以上操作步骤都正确的话,会在小工具里多一个名为 sidebar2 的 Widget,你可以拖动添加你所需要的 Widget,如果你想要更多不同的侧边栏,还可以用相同的方法注册 sidebar3、sidebar4……
以上内容根据网上资源整理,分享给大家使用,我想这个应该不算是Google最近准备要扫荡的过度优化之列吧!
这么麻烦,还是用插件算了。
其实是代码比较简单,还能减轻主机负担!
挺实用的