现在的位置: 首页Wordpress>正文
WordPress相关日志函数
2010年02月23日 Wordpress ⁄ 作者:知更鸟 ⁄ 共 1122字 评论数 31 ⁄ 被围观 29,310+

不用插件实现一些常用功能是上上之选,之前网上盛传的不使用插件就能实现的五个常用功能一文中的相关日志函数,不是很完善,加到单篇日志后,下面的评论会变成最后一篇相关日志的评论,大概是loop出了问题。而这段代码不会出现这个弊病,并且在没有相关日志的情况下,会显示随机日志。这段代码是从一款主题中Copy出来的,原函数在没有相关日志时,显示最新文章,修改为显示随机日志。将这段代码加到single.php模板文件<?php comments_template(); ?>上面即可,可以删除相关日志插件了!

<?php
$backup = $post;
$tags = wp_get_post_tags($post->ID);
$tagIDs = array();
if ($tags) {
echo '<h4>相关日志</h4>';
echo '<ul>';
$tagcount = count($tags);
for ($i = 0; $i < $tagcount; $i++) {
$tagIDs[$i] = $tags[$i]->term_id;
}
$args=array(
'tag__in' => $tagIDs,
'post__not_in' => array($post->ID),
'showposts'=>4,<!-- 显示相关日志篇数 -->
'caller_get_posts'=>1
);
$my_query = new WP_Query($args);
if( $my_query->have_posts() ) {
while ($my_query->have_posts()) : $my_query->the_post(); ?>
<li><a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title(); ?>"><?php the_title(); ?></a></li>
<?php endwhile;
echo '</ul>';
} else { ?>
<ul>
<?php
query_posts(array('orderby' => 'rand', 'showposts' => 8));<!-- 显示随机日志篇数 -->
if (have_posts()) :
while (have_posts()) : the_post();?>
<li><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title(); ?>"><?php the_title(); ?></a></li>
<?php endwhile;endif; ?>
</ul>
<?php }
}
$post = $backup;
wp_reset_query();
?>

目前有 31 条留言 其中:访客:12 条, 博主:5 条 引用: 14

  1. cyusyu : 2010年02月23日 820 天前 08:52:46  1楼 @回复 回复

    去把插件换下来去

  2. Yacca : 2010年02月24日 819 天前 00:44:04  2楼 @回复 回复

    可以把这个作为一个函数来调用...

  3. 小骆驼商队 : 2010年03月17日 797 天前 20:41:19  3楼 @回复 回复

    博主试用了吗?我试了不好用哦,开始提示cut_str没有定义,我改成mb_substr,还是不能出来文章~

    • 知更鸟 : 2010年03月17日 797 天前 21:32:03 @回复 回复

      没有试用,而是正在使用 :razz: ,这段代码是抓取文章标签实现的

  4. Chloe : 2010年03月18日 797 天前 11:53:56  4楼 @回复 回复

    請問,我使用了但是卻連單篇文章都打不開,然後出現以下警語:
    Parse error: syntax error, unexpected '>' in 主題位址/single.php on line 46
    不曉得是什麼原因呢? :?:

    • 知更鸟 : 2010年03月18日 797 天前 12:05:24 @回复 回复

      不同的主题函数代码有差异,比如一下些函数结束语句位置不同,可能就会造成一些错误,可以尝试将代码放到不同的位置试试

  5. centicent : 2010年04月04日 780 天前 15:15:47  5楼 @回复 回复

    刚刚试了,可以用,不过,要把里面的单引号换成英文半角的。和“ ”删掉。

    • centicent : 2010年04月04日 780 天前 15:16:42 @回复 回复

      注释的“显示相关日志篇数 显示随机日志篇数”删掉。

      • 求索阁 : 2010年08月11日 651 天前 09:17:56 @回复 回复

        对头,把这个注释删去,就正常了···

    • 知更鸟 : 2010年04月10日 774 天前 15:37:10 @回复 回复

      嗯,WP自动把英文标点转成中文标点了,现在改了程序没问题了

  6. aisinvon : 2010年05月22日 731 天前 16:56:01  6楼 @回复 回复

    能不用插件就不用插件,这个方法拿去用啦

  7. 土野鲜 : 2011年04月06日 413 天前 15:20:46  7楼 @回复 回复

    不是很懂

  8. 网络整合营销 : 2011年07月05日 322 天前 22:44:28  8楼 @回复 回复

    确实啊,不是很懂,回去试试

  9. wordpress主题书包 : 2011年11月18日 187 天前 11:45:23  9楼 @回复 回复

    你是代码高手 请教你个问题,麻烦你能帮忙

    如何在文章页面调用,实现分类相关文章
    或者如何修改成按照 按tag相关文章

    function get_posts_related_by_taxonomy($post_id,$taxonomy,$args=array()) {
    $query = new WP_Query();
    $do_not_duplicate[] = $post->ID;
    $terms = wp_get_object_terms($post_id,$taxonomy);

    if (count($terms)) {
    // Assumes only one term for per post in this taxonomy
    $post_ids = get_objects_in_term($terms[0]->term_id,$taxonomy);
    $post = get_post($post_id);

    $args = wp_parse_args($args,array(
    'post_type' => $post->post_type, // The assumes the post types match
    'post__in' => $post_ids,
    'post__not_in' => array($post->ID),
    'taxonomy' => $taxonomy,
    'term' => $terms[0]->slug,
    'posts_per_page' => 4,
    )

    );

    $query = new WP_Query($args);
    }
    return $query;
    }

    • 知更鸟 : 2011年11月18日 186 天前 19:29:09 @回复 回复

      这篇文章的代码就是以标签判断相关文章

  10. linda : 2012年04月18日 34 天前 23:46:01  10楼 @回复 回复

    还需要尝试.

查看来自外部的引用: 14

  • 脱离插件,实现主题分页功能 · 新鲜榜
  • 脱离插件,实现主题分页功能 « Wopus中文博客平台 - Wordpress
  • » WordPress相关日志函数 @ Cloud 1989
  • 脱离插件,实现WordPress主题分页功能 | 春暖花开
  • Hotnews2.4 学习笔记 | [睿].IRUIZHI.com
  • IWITH.ME测试页面 | IWITH.ME
  • 脱离插件,实现WordPress主题分页功能 | 娜美工作室 - 翻山越岭来找立的博客
  • 脱离插件,实现WordPress主题分页功能 | 开溜网
  • 脱离插件,实现WordPress主题分页功能(转) | 开溜网
  • 不用插件也可实现WordPress主题分页功能 | 赵周光
  • 脱离插件,实现WordPress主题分页功能 – SEO百家争鸣
  • 实现WordPress主题分页功能 – SEO百家争鸣
  • 脱离插件实现WordPress – SEO百家争鸣
  • WordPress相关日志函数 | 168yeah博客

Wopus问答

给我留言

留言无头像?

留言不能超过1500字,已输入字数:

×
腾讯微博