今天逛了一下李学江大神的博客,发现这个功能特别不错,于是转载过来了跟大家分享。
今天终于抽出时间,把代码和教程分享给大家。我所构建的网址导航主要分为以下几个模块:访客网站自动排名第一模块、知名博客模块、人气博客模块、博客大全模块、边栏模块。
下面分模块给大家介绍:
一、访客网站自动排名第一模块
通过调取博客留言者的名字和网址,并去重,按照留言时间顺序排列,最近代链接的留言排在第一位(留言者不填写链接则不显示)
1、把以下代码放入到所用主题的functions.php最后一个%>。
//最新评论排第一
function Autofirst($af){
global $wpdb;
$queryaf=“select comment_author, comment_author_url, comment_date from $wpdb->comments where comment_ID in (select max(comment_ID) from $wpdb->comments where comment_approved=’1′ and comment_author_url !=” and user_id=’0′ GROUP BY comment_author_email) ORDER BY comment_date DESC LIMIT $af”;
$wally = $wpdb->get_results($queryaf);
foreach ($wally as $commentaf){
$tmpy= “
$outputy .= $tmpy;
}
$outputy = “
”.$outputy.“
”;
echo $outputy ;
}
其中输出的样式可以自定义,毕竟每一个博客的样式都不一样,这个就靠自己发挥了,只需要在以上代码中的
中添加一个class属性即可。
2、把以下代码放入需要显示最新访客的地方,如留言板。
其中100表示显示100个最新访客,这个数值可以自定义,一定不能为空,要不然会出错,最起码要大于0以上。
二、知名博客模块
显示一定时期内在本站留言比较活跃的用户网站。
三、人气博客
显示一定时期内在本站留言数最多的用户网站。
四、博客大全
调用你网站的友情链接,由于主题差异,每个网站的调用方法可能不尽相同,如果不懂的话,你可以资讯主题作者。
五、边栏
调用主题边栏,在后台小工具中添加你想要显示的内容。
PS:
1、如果你正在使用知更鸟Begin主题,以上代码全部适用,非知更鸟Begin主题,通过本教程你只能实现最近访客访客自动排名第一功能,如果感兴趣,你也可以参照这篇文章:《WordPress博客如何利用最新评论实现类似导航网站自动排第一功能》。
2、各位在使用的时候,会发现知名博客和人气博客显示的内容与本站有些诧异,如果你希望和本站显示的一样,你可以找到/wp-content/themes/begin/inc/inc.php文件,将约2013至1268行代码替换成以下代码。
// 读者排行
function top_comment_authors($amount = 98) {
global $wpdb;
$prepared_statement = $wpdb->prepare(
‘SELECT
COUNT(comment_author) AS comments_count, comment_author, comment_author_url, comment_author_email, MAX( comment_date ) as last_commented_date
FROM ‘.$wpdb->comments.’
WHERE comment_author != “” AND comment_type = “” AND comment_approved = 1 AND user_id = “”
GROUP BY comment_author
ORDER BY comments_count DESC, comment_author ASC
LIMIT %d’,
$amount);
$results = $wpdb->get_results($prepared_statement);
$output = ‘
foreach($results as $result) {
$c_url = $result->comment_author_url;
$output .= ‘
’;
}
$output .= ‘
’;
echo $output;
}
function top_comments($number = 98) {
global $wpdb;
$counts = wp_cache_get( ‘mostactive’ );
if ( false === $counts ) {
$counts = $wpdb->get_results(“SELECT COUNT(comment_author) AS cnt, comment_author, comment_author_url, comment_author_email
FROM {$wpdb->prefix}comments
WHERE comment_date > date_sub( NOW(), INTERVAL 90 DAY )
AND comment_approved = ‘1’
AND comment_author_email != ‘example@example.com’
AND comment_author_email != ”
AND comment_author_url != ”
AND comment_type = ”
AND user_id = ‘0’
GROUP BY comment_author_email
ORDER BY cnt DESC
LIMIT $number”);
}
$mostactive = ‘
if ( $counts ) {
wp_cache_set( ‘mostactive’, $counts );
foreach ($counts as $count) {
$c_url = $count->comment_author_url;
$mostactive .= ‘
’;
}
$mostactive .= ‘
’;
echo $mostactive;
}
}
if (zm_get_option(‘meta_delete’)) {} else {require get_template_directory() . ‘/inc/meta-delete.php’;}
require get_template_directory() . ‘/inc/meta-boxes.php’;
require get_template_directory() . ‘/inc/show-meta.php’;
然后使用以下CSS文件。
<?php
/*
Template Name: 博客导航
*/
if ( ! defined( ‘ABSPATH’ ) ) { exit; }
?>
<link rel=“stylesheet” href=“/css/sites.css” />
<?php the_title( ‘
’, ‘
’ ); ?>
每当在本站评论时填写网址,贵站将自动排在第一位
知名博客
人气博客
<?php
$taxonomy = ‘favorites’;
$terms = get_terms($taxonomy); foreach ($terms as $cat) {
$catid = $cat->term_id;
$args = array(
‘showposts’ => 100,
‘meta_key’ => ‘sites_order’,
‘orderby’ => ‘meta_value’,
‘order’ => ‘date’,
‘tax_query’ => array( array( ‘taxonomy’ => $taxonomy, ‘terms’ => $catid, ‘include_children’ => false ) )
);
$query = new WP_Query($args);
if( $query->have_posts() ) { ?>
name; ?>
have_posts()) : $query->the_post();?>
ID, ‘sites_img_link’, true) ) { ?>
ID, ‘sites_img_link’, true)); ?>
<a href=“” target=“_blank” rel=“external nofollow”>
ID, ‘sites_link’, true)); ?>
<a href=“” target=“_blank” rel=“external nofollow”>
<!– 备用
分类名称
<?php
$args = array(‘tax_query’ => array( array(‘taxonomy’ => ‘favorites’, ‘field’ => ‘id’, ‘terms’ => explode(‘,’,830 ))), ‘posts_per_page’ => 100);
query_posts($args); while ( have_posts() ) : the_post();
?>
ID, ‘sites_link’, true) ) { ?>
ID, ‘sites_link’, true); ?>
<a href=“
” target=“_blank” rel=“external nofollow”>
<?php the_title( sprintf( ‘
–>
添加小工具
<a href=“widgets.php” target=“_blank”>为“网址侧边栏”添加小工具
注意,本代码仍然只适用于知更鸟Begin主题。
本文所有权归李学江博客所有,转载请注明来源:https://lixuejiang.com/wordpress/2496.htm