在网站上显示访问者的评论,是提高访问者参与度的方法之一。 此外,你还可以推荐在网站上推荐一些精彩评论,并给出评论者的网站链接。 下面我们就为这些评论者和他们的评论设计一个专用的页面模板。先看看效果示意图吧。
简单地说,这个教程会告诉你怎样:
创建一个页面模板
创建页面模板的最简单方法是打开主题中的page.PHP文件,该文件内容大致如下:
<?PHP get_header(); ?>
<div id="content">
<?PHP if (have_posts()) : while (have_posts()) : the_post(); ?>
<div class="post" id="post-<?PHP the_ID(); ?>">
<h2 class="page_title"><?PHP the_title(); ?></h2>
<?PHP the_content(); ?> </div>
<?PHP comments_template(); ?>
<?PHP endwhile; endif; ?>
</div> <?PHP get_sidebar(); ?>
<?PHP get_footer(); ?>
<div id="content">
<?PHP if (have_posts()) : while (have_posts()) : the_post(); ?>
<div class="post" id="post-<?PHP the_ID(); ?>">
<h2 class="page_title"><?PHP the_title(); ?></h2>
<?PHP the_content(); ?> </div>
<?PHP comments_template(); ?>
<?PHP endwhile; endif; ?>
</div> <?PHP get_sidebar(); ?>
<?PHP get_footer(); ?>
复制page.PHP文件中的内容并粘贴到新的文件中,在新文件最上方添加以下代码:
<?PHP /* Template Name: Comments Central */ ?>
然后保存文件。 对如何命名页面模板文件没有强制要求,但在命名时你可以用上“pt-comment-central.PHP”这样的前缀以便辨认。 到目前为止,我们还没有在这个新建的页面模板中添加新内容,但是模板已经开始运行并且可以在“创建新页面”菜单中被选定。
获取评论
首先从“最新评论”部分开始:
<h3>Recent Comments</h3>
<ul id="cc-recent-comments">
<?PHP
$max = 7; // number item to get global $wpdb;
$sql = "SELECT c.*,p.post_title FROM
$wpdb->comments c INNER JOIN
$wpdb->posts p ON (c.comment_post_id=p.ID) WHERE comment_approved = '1'
AND comment_type not in ('trackback','pingback') ORDER BY comment_date DESC LIMIT $max";
$results = $wpdb->get_results($sql);
$template = '%g <a href="%au">%an</a> on <a href="%pu#comment-%cid">%pt</a>';
$echoed = 0; foreach ($results as $row)
{ $tags = array('%ct','%cd','%g','%pt','%pu','%au','%an','%cid');
$replacements = array($row->comment_title,
$row->comment_date,get_avatar($row->comment_author_email,'32'),
$row->post_title,get_permalink($row->comment_post_ID),
$row->comment_author_url,
$row->comment_author,
$row->comment_ID); echo '<li>' . str_replace($tags,$replacements,$template) . '</li>'; $echoed = 1;
}
if ($echoed==0)
echo '<li>No comment found.</li>';
?>
</ul>
<ul id="cc-recent-comments">
<?PHP
$max = 7; // number item to get global $wpdb;
$sql = "SELECT c.*,p.post_title FROM
$wpdb->comments c INNER JOIN
$wpdb->posts p ON (c.comment_post_id=p.ID) WHERE comment_approved = '1'
AND comment_type not in ('trackback','pingback') ORDER BY comment_date DESC LIMIT $max";
$results = $wpdb->get_results($sql);
$template = '%g <a href="%au">%an</a> on <a href="%pu#comment-%cid">%pt</a>';
$echoed = 0; foreach ($results as $row)
{ $tags = array('%ct','%cd','%g','%pt','%pu','%au','%an','%cid');
$replacements = array($row->comment_title,
$row->comment_date,get_avatar($row->comment_author_email,'32'),
$row->post_title,get_permalink($row->comment_post_ID),
$row->comment_author_url,
$row->comment_author,
$row->comment_ID); echo '<li>' . str_replace($tags,$replacements,$template) . '</li>'; $echoed = 1;
}
if ($echoed==0)
echo '<li>No comment found.</li>';
?>
</ul>