目录
[隐藏]

因为最近对网站做了一些修改,把文章下面的related post程序给替换掉了,原来用的是代码,但是效果真的不是很好,特别是相关度,而且还经常出现自相关。于是就把function里面的那个函数删了。换上了YARPP,效果还让人满意。

然后还有就是一开始有的随机文章,但是又觉得随机文章放下面不怎么好,不过对于随机文章一直不知道怎样的代码好一点。总之现在用的就是这里面的。随便看看吧,我当做过保存备份。

插件实现五类文章

1.免插件输出最新文章(在wordpress模板中需要呈现的地方输入以下代码即可)

<?php
$limit = get_option('posts_per_page');
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
query_posts('showposts=' . $limit=7 . '&paged=' . $paged);
$wp_query->is_archive = true; $wp_query->is_home = false;
?>
<?php while(have_posts()) : the_post(); if(!($first_post == $post->ID)) : ?>
<ul>
<li><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></li>
</ul>
<?php endif; endwhile; ?>

OR

<?php get_archives("postbypost", "6", "html", " ", " "); ?>

2.免插件输出最新评论

<?php
global $wpdb;
$sql = "SELECT DISTINCT ID, post_title, post_password, comment_ID, comment_post_ID, comment_author, comment_date_gmt, comment_approved, comment_type,comment_author_url, SUBSTRING(comment_content,1,30) AS com_excerpt FROM $wpdb->comments LEFT OUTER JOIN $wpdb->posts ON ($wpdb->comments.comment_post_ID = $wpdb->posts.ID) WHERE comment_approved = '1' AND comment_type = " AND post_password = " ORDER BY comment_date_gmt DESC LIMIT 10";
$comments = $wpdb->get_results($sql);
$output = $pre_HTML;
foreach ($comments as $comment) {
$output .= "n<li>". "<a href="" . get_permalink($comment->ID)."#comment-" . $comment->comment_ID . "" title="on ".$comment->post_title . "">".strip_tags($comment->comment_author)."</a>" .": " .strip_tags($comment->com_excerpt)."</li>";
}
$output .= $post_HTML;
echo $output;
?>

如果在使用过程中出现了错误如下:

Parse error: syntax error, unexpected '='

那么请换用以下代码试试:

<?php
global $wpdb;
$sql = "SELECT DISTINCT ID, post_title, post_password, comment_ID, comment_post_ID, comment_author, comment_date_gmt, comment_approved, comment_type,comment_author_url, SUBSTRING(comment_content,1,30) AS com_excerpt FROM $wpdb->comments LEFT OUTER JOIN $wpdb->posts ON ($wpdb->comments.comment_post_ID = $wpdb->posts.ID)WHERE comment_approved = '1'
AND comment_type = post_password  ORDER BY comment_date_gmt DESC LIMIT 10";
$comments = $wpdb->get_results($sql);
$output = $pre_HTML;
foreach ($comments as $comment) {
$output .= "n<li>". "<a href="" . get_permalink($comment->ID)."#comment-" . $comment->comment_ID . "" title="on ".$comment->post_title . "">".strip_tags($comment->comment_author)."</a>" .": " .strip_tags($comment->com_excerpt)."</li>";
}
$output .= $post_HTML;
echo $output;
?>

上面这段代码是对第一种代码中"判断是否要输出密码文章的评论"产生的错误来修改的,默认预设密码的文章的评论不会显示在输出信息中。假使你希望密码文章的评论也会显示,就将" AND comment_type = post_password "给移除即可。

3.免插件输出热门文章

<ul>
<?php $result = $wpdb->get_results("SELECT comment_count,ID,post_title FROM $wpdb->posts ORDER BY comment_count DESC LIMIT 0 , 10");
foreach ($result as $post) {
setup_postdata($post);
$postid = $post->ID;
$title = $post->post_title;
$commentcount = $post->comment_count;
if ($commentcount != 0) { ?>
<li><a href="<?php echo get_permalink($postid); ?>" title="<?php echo $title ?>">
<?php echo $title ?></a> (<?php echo $commentcount ?>)</li>
<?php } } ?>
</ul>

这个不用多说,根据评论数进行排序输出.默认格式是文章标题后面加上评论数目.用了就知道呵呵.

4.免插件输出相关文章

<ul>
<?php
$tags = wp_get_post_tags($post->ID);
if ($tags) {
$first_tag = $tags[0]->term_id;
$args=array(
'tag__in' => array($first_tag),
'post__not_in' => array($post->ID),
'showposts'=>10,
'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="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?> <?php comments_number(' ','(1)','(%)'); ?></a> </li>
<?php
endwhile;
}
}
?>
</ul>

此段代码是根据文章内的tag也就是标签来输出相关的文章,默认输出格式也是文章标题后面加评论数.

这里还要说下最好不要用这个。这样的相关度不是很高,最好找个专业的相关文章插件来吧。

5.免插件输出随机文章

<?php
query_posts(array('orderby' => 'rand', 'showposts' => 1));
if (have_posts()) :
while (have_posts()) : the_post();
the_title();
the_excerpt();
endwhile;
endif; ?>

使用上面的代码可以输出随机的文章,输出的效果是随机文章标题和文章的摘要.如果你只需要输出标题,那么去掉the_excerpt();这句应该就可以了.

或者把你可以使用muki童鞋修改的代码:

<?php
query_posts(array('orderby' => 'rand', 'showposts' => 2));
if (have_posts()) :
while (have_posts()) : the_post();?>
<a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title(); ?>"><?php the_title(); ?></a>&nbsp;<?php comments_number('', '(1)', '(%)'); ?><br />
<?php endwhile;endif; ?>

上面的代码输出效果是标题可以点击,以及后面自带评论数目。

至于要显示多少篇随机文章,修改部份在 'showposts' => X 的地方,将 X 改成想要的数目即可。

关于随机文章还有一种方法:

<div>
<?php $rand_post=get_posts('numberposts=1&orderby=rand'); foreach($rand_post as $post) : ?>
<a title="随机进入一篇文章"href="<?php the_permalink(); ?>">
随机进入一篇文章
</a>
<?php endforeach; ?>
</div>

via:http://014.cc/939        WordPress免插件实现五类文章输出