wp_list_pages() 是WordPress模板中最为常用的一个函数. 在一些浏览器中, 这个函数输出的白色空格可能导致你的模板在一些浏览器中显示不正常, 尤其是你需要使用wp_list_pages() 来制作纵向列表的时候, 它输出的空格可能会造成很大的困扰, 对wordpress主题的样式化造成非常大的困扰。这里提供一个非常简单的解决方案。
wp_list_pages()默认会输出一系列的<li></li>标签围绕的博客页面列表, 并列接到相应的页面, 或者是无规则的大写字母开头的页面页面, 输出的代码列表如下图所示:
<ul>
<li><a href=”#”>页面标题</a></li>
<li><a href=”#”>页面标题</a></li>
</ul>
有的浏览器可以正常识别这些标签, 然而在一些特别的浏览器中, </li>标签后面的白色空格会造成每个列表前面产生一个白色的小空格, 当你使用了背景色显示纵向显示页面列表的时候, 这个白色的小空格就会严重的影响到你的WordPress主题美观。
为了防止这种情况出现, 你输出的代码应该看起来如下图:
<ul><li><a href=”#”>page name</a></li><li><a href=”#”>page name</a><li></ul>
要实现这种代码结构其实很简单, 只需要在function.php 这个文件中添加一小段代码就可以了。 首先找到你的wordpress模板路径, 然后找到functions.php文件 (如果没有这个文件, 那么你应该新建一个function.php)
把下列代码添加到function.php中的开头或者结尾, 注意不要添加到其他代码中间,从而影响到代码的正常运行
function qbkl_nospace($input) {
$output = str_replace(array("\n", "\r", "\t"), "", $input);
echo $output;
}
为了激活这段代码,找到WordPress模板中的 wp_list_pages(), 通常在Header.php 或者Sidebar.php 文件中可以找到它, 然后将 <?php wp_list_pages(); ?> 替换成 <?php qbkl_nospace(wp_list_pages()); ?>
这个函数在任何functions.php和模板文件中都可以正常解决相应的问题
wp_list_pages() 通常在哪儿可以找到?
虽然我不建议你修改WordPress 的核心代码, 但是许多高级用户还是有这方面的需要。
如果你想要修改wp_list_pages的输出结果, 那么你可以到 “wp-includes”这个文件夹中找到post-template.php, wp_list_pages 就是这个文件中定义的。
本文中提到的文件名称和文件路径已经在WordPress 2.5 和 2.6.3 确认
Hi, nice posts there
through’s for the compelling dirt
[回复]