谷歌式的WordPress页面导航

创建[非插件]谷歌式的WordPress的页面导航

WordPress博客浏览页面导航上往往是非常乏味的的“下一页”/“前一页”。

这可不是世界上最有效的页面导航方法...

当你对谷歌搜索,您可以直接跳到第3页,4,5或其他任何的页面时。一旦你做什么,您可以随时点击回页面1。它要比“下一页”/“前一页”的用户体验要好多,容易得多。

那么,我们为什么不在WordPress上创建?

复制下面的代码并粘贴到你的主题的functions.php文件里,这一点很容易。

<?php function wp_pagenavi($before = '', $after = '', $prelabel = '', $nxtlabel = '', $pages_to_show = 5, $always_show = false) {

global $request, $posts_per_page, $wpdb, $paged;

if(empty($prelabel)) { $prelabel = '<strong>«</strong>';

} if(empty($nxtlabel)) {

$nxtlabel = '<strong>»</strong>';

} $half_pages_to_show = round($pages_to_show/2);

if (!is_single()) {

if(!is_category()) {

preg_match('#FROM\s(.*)\sORDER BY#siU', $request, $matches); } else {

preg_match('#FROM\s(.*)\sGROUP BY#siU', $request, $matches); }

$fromwhere = $matches[1];

$numposts = $wpdb->get_var(”SELECT COUNT(DISTINCT ID) FROM $fromwhere”);

$max_page = ceil($numposts /$posts_per_page);

if(empty($paged)) {

$paged = 1;

}

if($max_page > 1 || $always_show) {

echo “$before <div class=’Nav’><span>Pages ($max_page): </span>”; if ($paged >= ($pages_to_show-1)) {

echo ‘<a href=”‘.get_pagenum_link().’”>« First</a> … ‘; }

previous_posts_link($prelabel);

for($i = $paged - $half_pages_to_show; $i <= $paged + $half_pages_to_show; $i++) { if ($i >= 1 && $i <= $max_page) { if($i == $paged) {

echo “<strong class=’on’>$i</strong>”;

} else {

echo ‘ <a href=”‘.get_pagenum_link($i).’”>’.$i.’</a> ‘; }

}

}

next_posts_link($nxtlabel, $max_page);

if (($paged+$half_pages_to_show) < ($max_page)) {

echo ‘ … <a href=”‘.get_pagenum_link($max_page).’”>Last »</a>’; }

echo “</div> $after”;

}

}

}

?>

现在,您需要选择在何处放置在您的主 题的新的导航。

在category.php搜寻这样的代码:

<div class="navigation">

<div class="alignleft"><?php next_posts_link('« Older Entries') ?></div>

<div class="alignright"><?php previous_posts_link('Newer Entries »') ?></div>

</div>

现在,取代这个:

<div class="navigation">

<?php if(function_exists('wp_pagenavi')) { wp_pagenavi('', '', '', '', 3, false);} ?> </div>

您可以在相 同的编辑为您的主页,但有一个额外的步骤。在查找的文件:

<?php while (have_posts()) : the_post(); ?>
替换为以下这一点,然后从上面添加你喜欢的地方导航代码。

<?php $temp = $wp_query; $wp_query= null; $wp_query = new WP_Query(); $wp_query->query('showposts=6'.'&paged='.$paged); ?>

<?php while ($wp_query->have_posts()) : $wp_query->the_post(); ?>

以上的代码在您的分类和主页上工作了,另此代码还将为搜索结果页...可以随意使用它。

OK,大功造成!又可以干掉一个插件了!

有时间我也分享一下我自用页面导航代码。

Tag(s): ,
  • QQshuqian
  • Del.icio.us
  • Baidu
  • Google
  • Fanfou
  • FriendFeed
9 Comments Contributed by Visitors
  1. rebutton林木木 | 13:59@10-03-19 1 林木木

    哦,杀发咯!!!仔细看看先~

  2. rebuttonedikud | 14:02@10-03-19 2 edikud

    @林木木 :grin: 慢慢看吧!

  3. rebuttonFirm | 21:50@10-03-19 3 Firm

    款式不是很适合我博客的风格

  4. rebuttonedikud | 00:23@10-03-20 4 edikud

    这个就关于各人喜欢的风格问题了,对我来说这个足够用了! :grin:

  5. rebuttonzwwooooo | 10:06@10-03-20 5 zwwooooo

    又一个减少插件的理由/工具

  6. rebuttonedikud | 20:36@10-03-20 6 edikud

    @zwwooooo 减少插件是好事,没有理由不支持的!

  7. rebuttonwillin | 23:40@10-06-12 7 willin

    哈哈! 這才是 mini pagnavi 的老祖宗啊! 正版的! 但不是我寫的.

  8. rebuttonedikud | 23:57@10-06-12 8 edikud

    [b:#comment-773]@willin [/b]可惜我只能CP,向TX学习才行! :grin:

  9. rebutton微PHP-鸿枫业 | 11:40@11-11-26 9 微PHP-鸿枫业

    看看,呵呵,不错,又有了新的更新哦~其实关注你的网站很久了~同时网络中人,互相多走动走动吧,今天,我来你的网站串门,欢迎你明天也来寒舍坐一坐啊

Leave Comments Here...

:smile: :grin: :sad: :eek: :shock: :???: :cool: :lol: :mad: :razz: :oops: :cry: :evil: :twisted: :wink: :?: :idea: :neutral:

必填

必填&保密

随您

Ctrl+Enter

  • 已部署"白忙活" Anti-Spam 系统,猪肉 Spammer 请注意查看源代码链接处。
  • 本站不会泄露您的邮件地址,敬请放心。
  • 支持常用 HTML 代码调用,插入 PHP 代码需注意:< = &lt;> = &gt;
  • 仅当某人针对您的评论做出回应时,您才会收到由本站发出的通知信件。
  • 如您希望以相同方式通知某位网友,请点击 Reply 按钮,或自行输入 @对方名字:
  • 鼠标移至评论列表中的 @someone: 区域即可自动显示 someone 的评论内容。
3 Trackbacks/Pingbacks

您直接访问了本站! 嘿嘿