杨景文 发表于 2012-10-7 21:56:27

Wordpress下文章归档页面和评论邮件回复模板

这两天一直在折腾文章归档和邮件回复模板,文章归档是我在用wordpress的时候的一个修改版本,仅仅就是把js效果添加上而已,而评论邮件回复的样式是我在网站随便溜达的时候看到的,有加以修改适合自己现在使用的东西采用的。今天又人问道wordpress下的这两种东西,所以今天就整理了一下,发出来。希望对博友们有用,也算是记录一下自己折腾的历史吧。
1、wordpress下文章归档页面(免插件,Js可伸缩效果)。
直接将下面的代码copy一下,放到一个新建页面,然后前台调用就好。因为有点懒,所以就不解释了。
<?php
/*
Template Name: 文章归档
*/
?>
<?php get_header(); ?>
<!--这里开始CSS样式定义-->
<style type="text/css">
.my-archive h3 {cursor:move;margin-top:3px;}
.my-archive ul li{list-style:none outside none;padding-top:2px;text-indent:8px;}
</style>
<!-- css end-->
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<div id="content">
        <div id="post">
      <div id="pageContent">
      <h2>文章归档</h2>
        <!--核心代码开始-->
<span id="control" style="cursor:pointer;color:#666666;text-shadow:0 0 2px #66CD00;float: right;font-size: 15px;">全部展开/收起</span>
<div class="my-archive">
<?php
        $previous_year = $year = 0;
        $previous_month = $month = 0;
        $ul_open = false;
        $myposts = get_posts('numberposts=-1&orderby=post_date&order=DESC');
?>
<?php foreach($myposts as $post) : ?>
<?php
        setup_postdata($post);
        $year = mysql2date('Y', $post->post_date);
        $month = mysql2date('n', $post->post_date);
        $day = mysql2date('j', $post->post_date);
?>
<?php if($year != $previous_year || $month != $previous_month) : ?>
<?php if($ul_open == true) : ?>
</ul>
        <?php endif; ?>
        <h3><?php the_time('Y年 m月'); ?></h3>
<ul>
        <?php $ul_open = true; ?>
        <?php endif; ?>
        <?php $previous_year = $year; $previous_month = $month; ?>
<li><span><?php the_time('m-d'); ?><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a><span style="float:right;"><a class="comm" href="<?php comments_link(); ?>" title="查看 <?php the_title(); ?> 的评论"><?php comments_number('0', '1', '%'); ?>人吐槽</a></span><span style="float:right; padding-right:20px;"><?php if(function_exists('the_views')) the_views(); ?></span></span></li>
<?php endforeach; ?>
</ul>
</div>
<!--核心代码结束-->
</div> </div>
<?php endwhile; endif; ?>
<?php get_footer(); ?>
<!--这里开始jQuery-->
<script type="text/javascript">
        jQuery(function($){
                $('.my-archive ul:gt(0)').hide();//第0和1 列默认显示,其他默认隐藏
                $('.my-archive h3').click(function() {//点击标题动作
                $('.my-archive ul').slideUp(300);//展开选择列
                $(this).next('ul').slideDown(500);//缩放同级其他元素
                });
                //一下是全局的操作
                $('#control').toggle(
                function(){
                        $('.my-archive ul').slideUp();
                },
                function(){
                        $('.my-archive ul').slideDown();
                });       
        });       
</script>

2、wordpress下评论邮件回复模板。
这个模板和我现在用的邮件回复样式是一样的,想看图片的话请点击这里查看。好久没折腾过wordpress东西, 不知道下面的会不会有bug,我仔细检查过了,应该没错。把下面代码放到functions.php里,?>之前,如果之前有评论回复邮件的话,可以直接把它覆盖掉,当然也可以对比着来修改。下面的代码没有可选是否留言回复这个复选框,如果想添加上的话那就按照你的那个东西在相应的位置加上就好。
//评论回复邮件
function comment_mail_notify($comment_id) {
$comment = get_comment($comment_id);
$parent_id = $comment->comment_parent ? $comment->comment_parent : '';
$spam_confirmed = $comment->comment_approved;
if (($parent_id != '') && ($spam_confirmed != 'spam')) {
$wp_email = 'no-reply@' . preg_replace('#^www\.#', '', strtolower($_SERVER['SERVER_NAME']));//发件人e-mail地址
$to = trim(get_comment($parent_id)->comment_author_email);
$subject = '您在 [' . get_option("blogname") . '] 的留言有了回應';
$message = '
<div style="background-color:#fff; border:1px solid #666666; color:#111;
-moz-border-radius:8px; -webkit-border-radius:8px; -khtml-border-radius:8px;
border-radius:8px; font-size:12px; width:702px; margin:0 auto; margin-top:10px;
font-family:微软雅黑, Arial;">
<div style="background:#666666; width:100%; height:60px; color:white;
-moz-border-radius:6px 6px 0 0; -webkit-border-radius:6px 6px 0 0;
-khtml-border-radius:6px 6px 0 0; border-radius:6px 6px 0 0; ">
<span style="height:60px; line-height:60px; margin-left:30px; font-size:12px;">
您在<a style="text-decoration:none; color:#00bbff;font-weight:600;"
href="' . get_option('home') . '">' . get_option('blogname') . '
</a>博客上的留言有回复啦!</span></div>
<div style="width:90%; margin:0 auto">
<p>' . trim(get_comment($parent_id)->comment_author) . ', 您好!</p>
<p>您曾在 [' . get_option("blogname") . '] 的文章
《' . get_the_title($comment->comment_post_ID) . '》 上发表评论:
<p style="background-color: #EEE;border: 1px solid #DDD;
padding: 20px;margin: 15px 0;">' . nl2br(get_comment($parent_id)->comment_content) . '</p>
<p>' . trim($comment->comment_author) . ' 给您的回复如下:
<p style="background-color: #EEE;border: 1px solid #DDD;padding: 20px;
margin: 15px 0;">' . nl2br($comment->comment_content) . '</p>
<p>您可以点击 <a style="text-decoration:none; color:#00bbff"
href="' . htmlspecialchars(get_comment_link($parent_id)) . '">查看回复的完整內容</a></p>
<p>欢迎再次光临 <a style="text-decoration:none; color:#00bbff"
href="' . get_option('home') . '">' . get_option('blogname') . '</a></p>
<p>(此邮件由系统自动发出, 请勿回复.)</p>
</div>
</div>';
$from = "From: \"" . get_option('blogname') . "\" <$wp_email>";
$headers = "$from\nContent-Type: text/html; charset=" . get_option('blog_charset') . "\n";
wp_mail( $to, $subject, $message, $headers );
//echo 'mail to ', $to, '<br/> ' , $subject, $message; // for testing
}
}
add_action('comment_post', 'comment_mail_notify');转载自 @所谓刚子 http://www.cgrabbit.info/blog/Wordpress-under-article-archive-page-and-comments-e-mail-reply-template.html



http://bbs.hnzzz.net/xwb/images/bgimg/icon_logo.png 该贴已经同步到 杨景文的微博
页: [1]
查看完整版本: Wordpress下文章归档页面和评论邮件回复模板