如何将下一个/上一个类应用于LIS以实现分页链接?

时间:2011-01-21 作者:user1462

我正在使用WP Paginate插件,需要将一个类应用于包含下一个/上一个链接的LIs。有人能告诉我怎么做吗?如果有比使用WP Paginate更好/更简单的方法,那么我愿意接受建议。谢谢

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

很高兴地说,实现你想要的目标一点也不难。

据我所知,you have to add a call to wp_paginate() in (one of) your theme(s) template file(s) 使用此插件时,调用如下所示:

<?php if(function_exists(\'wp_paginate\')) {
  wp_paginate();
} ?>
要执行所需操作,只需创建自己的函数,我们调用它mysite_paginate() 并调用它而不是上面的代码。

在您的职能范围内mysite_paginate() 呼叫ob_start() 要启动输出缓冲,请调用wp_paginate(), 然后打电话ob_get_clean() 捕获由创建的输出wp_paginate(). 最后一步是使用正则表达式搜索并替换为preg_replace() 添加所需的类,然后将结果回显到浏览器。

下面是您需要的代码。您可以将其添加到主题functions.php 文件或中的.php 您可能正在编写的插件文件:

function mysite_paginate() {
  if(function_exists(\'wp_paginate\')) {
    ob_start();
    wp_paginate();
    $html = ob_get_clean();
    $html = preg_replace(\'#<li>(<a href="[^"]+" class="next">)#Us\',
              \'<li class="next">$1\',$html);
    $html = preg_replace(\'#<li>(<a href="[^"]+" class="prev">)#Us\',
              \'<li class="prev">$1\',$html);
    echo $html;
  }
}
如果一切按计划进行,这就是使用element inspector 使用浏览器:

Screenshot showing classes added to the HTML output of WordPress

SO网友:Eric Martin

如果我理解正确,您希望更改:

<li><a href="http://www.ericmmartin.com/blog/page/2/" class="next">»</a></li>

收件人:

<li class="next"><a href="http://www.ericmmartin.com/blog/page/2/" class="next">»</a></li>

除了修改源代码之外,您还可以使用jQuery的一点魔力:

$(\'ol.wp-paginate .next\').parent().addClass(\'next\');

以及:

$(\'ol.wp-paginate .prev\').parent().addClass(\'prev\');

结束