php技术博客
让天下没有搞不定的bug~

个性化实现wordpress上一篇下一篇

zone阅读(444)

在百度知道经常会看到有人提问如何实现在文章的上方或下方有“上一篇 下一篇”这样的文章链接,我以前一直是把我主题自带的代码直接复制过去,一般是可以满足绝大多数用户的需求的,也就是说如果你的网站是使用wordpress搭建的,且使用的主题又没有提供这个功能,那么如下代码基本上可以满足你的需求了。

  1. <?php previous_post_link(‘【上一篇】%link’) ?><br/><?php next_post_link(‘【下一篇】%link’) ?>

将这段函数放到相关文章栏目所在层的上面或者下面即可,当然也可以紧跟正文。
今天看到一种很好看的“上一篇 下一篇”显示方法,这个没有显示任何汉字,就是一个符号,点击符号即可实现上一篇、下一篇文章的跳转,我一开始只是把上面那段函数中的汉字替换了要显示的符号,运气不好,木有成功,于是去找了一下关于这段函数的详细介绍:
previous_post_link 这个函数的功能是显示上一篇文章的链接,另一个函数next_post_link的作用是显示下一篇文章的链接,它们的原型是:

  1. <?php previous_post_link($format, $link, $in_same_cat = false, $excluded_categories = ”); ?>
  2. <?php next_post_link($format, $in_same_cat = false, $excluded_categories = ”); ?>

相关函数说明:
$format:格式化被显示的字符串,缺省值是”‘« %link”,第二个函数缺省值是”%link »”。
$link:被显示的字符串,缺省值是上一篇或下一篇的”$title”,也可以设置为其它你想显示的字符串。
$in_same_cat :表示是显式同一类别下的文章还是不区分类别的文章,缺省值false表示不区分类别,只以发帖的时间先后来确定。
$excluded_categories:表示在显示上一篇或下一篇时是否排除掉某分类,缺省不排除,如果排除,把分类ID列在此处,以英文逗号分隔。
通过对如上函数的学习,我把代码修改如下(将其放到主题文件single.php文件的<?php get_footer(); ?>前面):

  1. <div class=”menu1″><?php previous_post_link(‘%link’,’‹’) ?></div>
  2. <div class=”menu2″><?php next_post_link(‘%link’,’›’) ?></div>

对应的css代码是(放到主题文件style.css里面):

  1. .menu1 {font: 110px ‘Arial’;position: fixed;_position: absolute;top: 160px;left: 0;padding: 15px 15px 15px 15px;}
  2. .menu2 {font: 110px ‘Arial’;position: fixed;_position: absolute;top: 160px;rightright: 0;padding: 15px 15px 15px 15px;}
  3. .menu1 a,.menu1 a:link,.menu1 a:visited,.menu1 a:active,.menu2 a,.menu2 a:link,.menu2 a:visited,.menu2 a:active{color: #ccc;}
  4. .menu1 a:hover,.menu2 a:hover{color:#ff4f73;}

效果啥样,用了就知道,嘿嘿。
拓展:如果你的网站有好多分类,如果就用上面那段代码的话,下一篇的内容可能就是另外一个分类的,因此需要调整一下该函数,要求其显示的是本篇文章所在分类的上一篇、下一篇文章,这样对于用户体验还是蛮好的。
实现同分类下的上一篇、下一篇链接,只要在上面的基础上添加一个判断:true,当同分类下存在文章时就显示出来。代码如下

  1. <?php if (get_previous_post()) { previous_post_link(‘上一篇: %link’,’%title’,true);} else { echo “没有了,已经是最后文章”;} ?>
  2. <?php if (get_next_post()) { next_post_link(‘上一篇: %link’,’%title’,true);} else { echo “没有了,已经是最新文章”;} ?>

这段代码还加了一个判断语句,意思一看就能明白吧。

 技术分享,技术交流,小涛与您共同成长

wordpress如何让置顶文章不显示在顶部,而是让它们安装正常的顺序排列

zone阅读(546)

如果你不想让置顶文章显示在顶部,而是让它们安装正常的顺序排列,那么可以使用以下代码:

$paged = (get_query_var(‘paged’)) ? get_query_var(‘paged’) : 1;
$args=array(
‘paged’ => $paged,
‘caller_get_posts’ => 1
);
query_posts($args);

置顶文章参数说明

置顶文章功能引入于WordPress 2.7。在查询中,被设为“置顶”的文章会显示在其它文章之前,除非该文章已经被caller_get_posts=1参 数排除。

array(‘post__in’=>get_option(‘sticky_posts’)) —- 返回所有置顶文章的数组 caller_get_posts=1 —- 排除返回的文章上方的置顶文章,但在返回文章列表时,以自然顺序将曾经置顶的文章安插在列表中。

技术分享,技术交流,小涛与您共同成长

如何让wordpress显示所有分类下所有文章列表,分级显示

zone阅读(642)

wordpress是我们经常用到的开源博客,即使他在强大,有时也满足不了用户的需求,今天小涛就遇到了这个问题,就想如何让所有分类和分类下的所有文章全部一块显示出来,大体思路是这样的,先读取数据库执行分类循环,然后再执行查询数据库,读取该分类下的文章,闲话不说了,直接上代码更明了……

<?php

//for each category, show all posts

$cat_args=array(

‘orderby’ => ‘name’,

‘order’ => ‘ASC’

);

$categories=get_categories($cat_args);

foreach($categories as $category) {

$args=array(

‘showposts’ => -1,

‘category__in’ => array($category->term_id),

‘caller_get_posts’=>1

);

$posts=get_posts($args);

if ($posts) {

echo ‘<p>Category: <a href=”‘ . get_category_link( $category->term_id ) . ‘” title=”‘ . sprintf( __( “View all posts in %s” ), $category->name ) . ‘” ‘ . ‘>’ . $category->name.'</a> </p> ‘;

foreach($posts as $post) {

setup_postdata($post); ?>

<p><a href=”<?php the_permalink() ?>” rel=”bookmark” title=”Permanent Link to <?php the_title_attribute(); ?>”><?php the_title(); ?></a></p>

<?php

} // foreach($posts

} // if ($posts

} // foreach($categories

?>

使用方法

将以上代码添加到想要显示的模版里即可,如果多次使用可以封装到公共函数里,多次使用。

输出格式

分类一

文章一

文章二

文章三

分类二

文章一

文章二

文章三

技术分享,技术交流,小涛与您共同成长

WordPress 3.4 正式版发布啦,赶快升级吧

zone阅读(557)

不知不觉的,WordPress 都已经发布到 3.4 版本了,最开始用它的时候,还是 1.2 版本的呢。随着 WordPress 的慢慢发展,现在已经不是原来的那个非常轻巧的博客程序了,现在也已经是一个非常庞大的臃肿的发布系统了(这似乎是所有的发布系统都绕不过的圈子,从最开始的轻巧发展到臃肿)。这次的 3.4 版本,经过两个 RC 版本测试。不过随着时间的变化,再多的方面更新,似乎都已经引不起大家的太多关注了,而随着整个互联网行业的发展,WordPress 也前景不是很大了。

  这次更新的最大方面——主题定制。虽然功能很强大,不过现在各个主题站发布的大量的 WordPress 主题,已经多到让大家视觉疲劳,所以这个功能虽然费了开发人员大量劳作,不过似乎也用处不大了,而且给系统带来那么大的负担。其他的新功能都是可说不可说的功能,可能对于 WordPress 来说是新功能,可是对于其他发布系统来说,已经是不值得一提了,而 WordPress 已经成了发布系统了……。官方重点推荐的 Twitter 集成功能,对于我们的情况来说,更是无趣的很了,何况各种插件已经於的不能再多了。

  虽然贵为全球最流行的博客程序,不过在面对全世界不同用户的需求,WordPress 官方也很难把握自己的方针,照我的估计,最终也会迷失在反复的功能添加和精简这个过程中。

新功能:

  • 主题预览功能
  • 头部大小可自定义
  • 可从媒体库中选择自定义头部和背景
  • 改进的查找和选择主题
  • 主题和插件的其它改进

改进:

  • 新的XML-RPC API(移动开发用的)
  • 自定义头部和背景API
  • WP_Query性能提升
  • 国际化支持(主要是语言和本地化UI)
  • 当有大量已安装主题时的性能和API改进
  • 支持直接从主题目录中安装子主题(即主题和子主题可以放一块了)

下载地址:

解决PHP函数urlencode加密空格变+号的办法

zone阅读(548)

最近发现wp的同步插件wp2sina的插件有一个错误,内容同步的时候有些空格会变成+,无奈了,然后看了看代码,丫的,知道问题出在哪里了,哈哈,请看代码:

$a = urlencode(str_replace(‘|’, ‘ ‘, $content)); //加密后,字符串|转换成了空格,然而urlencode却把空格转换成了+号

所以最后我们还要继续转换一次

$a = str_replace(‘+’, ‘%20’, $a); //%20标示空格的意思

然后你再试试,就没有这个问题了,哈哈!

技术分享,技术交流,小涛与您共同成长……

百度空间升级后wp2hibaidu不能同步了

zone阅读(707)

最近百度空间升级了,发现wordpress同步插件wp2hibaidu不能同步了,可能是百度空间发表文章的地址变更了,才导致不能同步,然后小涛看了一下官网,哈哈,wp2hibaidu也更新啦,更新到1.0.4版本了,修复百度空间升级,不能同步的问题。哈哈,原来插件作者也发现了这个问题了,在这里替大家感谢一下插件作者!

升级有两个办法,直接在后台点击插件升级,第二个办法就是下载插件文件覆盖以前的版本唠,在这里也提醒一下还没有用wp2hibaidu插件的朋友们赶快来尝试一下吧!

wp2hibaidu1.0.4最新版下载地址:我要下载

技术分享,技术交流,小涛与您共同成长……