情侣模板的制作思路

说明:来源网络。

如果情侣博客首页是三栏,左右不同的颜色,文章页根据不同的作者显示不同的颜色,页面又是一种风格。可以按以下思路制作情侣主题。

1. 首先区分页面,首页,作者A和作者B。

<?phpif (is_page())  {$style_item = 'page';} elseif (is_single()) {    if ($post->post_author == '1') {

$style_item = 'left';

}

elseif ($post->post_author == '2') {

$style_item = 'right';

}

} else {

$style_item = 'normal';

} ?>

把定义的$style_item加在DIV框架内,以方便用CSS控制显示。

<div id="page" >

2. 首页左右作者的实现可以用query_posts来控制
一开始用query_posts(‘author=1′ ) 发现这样不能正常分页,查找了相关资料最后找到了如下代码:

<?php$limit = get_option('posts_per_page');$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;query_posts('author=1' . '&paged=' . $paged);

?>

注意:

<?php endwhile; ?>

下方加上一句

<?php wp_reset_query(); ?>

不加的话会使侧栏的if (is_category())这样的判断失效。

重点是对不同作者文章的调用,其余的就是CSS控制页面。

 

上面分析的是情侣模板的基本布局,接下来就是评论部分。主要是判断非作者、作者A和作者B,还有奇偶的问题。

1. 修改comments.php,在wp_list_comments代码那加上&callback=my_comment。

<?php wp_list_comments('type=comment&callback=my_comment'); ?>

2. 修改function.php,加入如下代码

function my_comment($comment, $args, $depth) {$GLOBALS['comment'] = $comment; ?><li <?php love_class(); ?> id="li-comment-<?php comment_ID() ?>">

<div id="comment-<?php comment_ID(); ?>">

<div>

<div >&nbsp;</div>

<?php comment_text() ?>

 

<?php if ($comment->comment_approved == '0') : ?>

<em><?php _e('Your comment is awaiting moderation.') ?></em>

<?php endif; ?>

 

<?php edit_comment_link(__('(Edit)'),'  ','') ?>

<div >&nbsp;</div>

</div>

 

<div>

<?php echo get_avatar($comment,$size='48',$default='<path_to_url>' ); ?>

<?php printf(__('<cite >%s</cite> <span >says:</span>'), get_comment_author_link()) ?>

</div>

 

<div>

<?php printf(__('%1$s at %2$s'), get_comment_date(),  get_comment_time()) ?>

</div>

</div>

}

3. function.php,加入如下代码

function love_class( $class = '', $comment_id = null, $post_id = null, $echo = true) {// Separates classes with a single space, collates classes for comment DIV$class = 'class="' . join( ' ', love_comment_class( $class, $comment_id, $post_id ) ) . '"';

if ( $echo)

echo $class;

else

return $class;

}

 

function love_comment_class( $class = '', $comment_id = null, $post_id = null ) {

global $comment_alt, $comment_depth, $comment_thread_alt;

 

$comment = get_comment($comment_id);

 

$classes = array();

 

// Get the comment type (comment, trackback),

$classes[] = ( empty( $comment->comment_type ) ) ? 'comment' : $comment->comment_type;

 

// If the comment author has an id (registered), then print the log in name

if ( $comment->user_id > 0 && $user = get_userdata($comment->user_id) ) {

// For all registered users, 'byuser'

$classes[] = 'byuser comment-author-' . $user->user_nicename;

// For comment authors who are the author of the post

if ( $post = get_post($post_id) ) {

if ( $comment->user_id === $post->post_author )

$classes[] = 'bypostauthor';

}

}

 

if ( empty($comment_alt) )

$comment_alt = 0;

if ( empty($comment_depth) )

$comment_depth = 1;

if ( empty($comment_thread_alt) )

$comment_thread_alt = 0;

 

if ( $comment_alt % 2 ) {

if ( $comment->user_id > 0 && $user = get_userdata($comment->user_id) ) {

$classes[] = 'odd-' . $user->user_login;

$classes[] = 'alt-' . $user->user_login;

} else {

$classes[] = 'odd';

$classes[] = 'alt';

}

} else {

if ( $comment->user_id > 0 && $user = get_userdata($comment->user_id) ) {

$classes[] = 'even-' . $user->user_login;

} else {

$classes[] = 'even';

}

}

 

$comment_alt++;

 

// Alt for top-level comments

if ( 1 == $comment_depth ) {

if ( $comment_thread_alt % 2 ) {

$classes[] = 'thread-odd';

$classes[] = 'thread-alt';

} else {

$classes[] = 'thread-even';

}

$comment_thread_alt++;

}

 

$classes[] = "depth-$comment_depth";

 

if ( !empty($class) ) {

if ( !is_array( $class ) )

$class = preg_split('#s+#', $class);

$classes = array_merge($classes, $class);

}

 

return apply_filters('comment_class', $classes, $class, $comment_id, $post_id);

}

文章系转载于网络,未整理,仅作参考学习使用。

QQ925474725交流