Create a blank Page (非帖子)标题为“评论、问题和反馈”或您选择的内容。将正文留空,然后发布页面。复制single.php
并将其重命名为page-comments.php
(第页中的“注释”处-comments.php是我们在上面创建的页面的鼻涕虫)。
(A) 在其中,替换此:
<?php while ( have_posts() ) : the_post(); ?>
使用此选项:<?php
$p = $_GET[\'u\'];
$the_query = new WP_Query("showposts=1&p=" . $p);
while ( $the_query->have_posts() ) : $the_query->the_post();
?>
(B) 同时替换此:<?php get_template_part( \'content\', \'single\' ); ?>
使用此选项:<?php get_template_part( \'content\', \'comments\' ); ?>
复制content-single.php
并将其重命名为content-comments.php
(在内容中-comments.php“注释”应与中使用的参数相同<?php get_template_part( \'content\', \'comments\' ); ?>
如上所示2(B)).现在,根据要在独立评论页面上显示的内容,编辑掉模板中的所有代码。例如,您可能要删除的第一件事是输出帖子内容的代码。
例如this is the original content-single.php
在编辑掉所有不必要的代码(我不想在评论页面上显示)后,文件中剩下的是:
<?php
/**
* The default template for displaying post comments.
*
* @package Reddle
* @since Reddle 1.0
*/
?>
<article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
<header class="entry-header">
<h1 class="entry-title"><a href="<?php the_permalink(); ?>" title="<?php printf( esc_attr__( \'Permalink to %s\', \'reddle\' ), the_title_attribute( \'echo=0\' ) ); ?>" rel="bookmark"><?php the_title(); ?></a></h1>
<?php if ( comments_open() || ( \'0\' != get_comments_number() && ! comments_open() ) ) : ?>
<p class="comments-link"><?php comments_popup_link( \'<span class="no-reply">\' . __( \'0\', \'reddle\' ) . \'</span>\', __( \'1\', \'reddle\' ), __( \'%\', \'reddle\' ) ); ?></p>
<?php endif; ?>
</header><!-- .entry-header -->
</article><!-- #post-<?php the_ID(); ?> -->
向中添加重写规则。htaccess文件,以使评论页面的URL美观:RewriteRule ^comments/([0-9]+)/?$ /comments/?u=$1 [QSA,L]
现在,帖子的评论页面将是http://example.com/comments/17/
如果17
是其帖子ID。除非链接到评论页面,否则读者如何知道在哪里发表评论?所以,在你的content-single.php
或任何适合您的模板(取决于您要显示链接的位置),请使用以下代码:
<a href="/comments/<?php the_ID(); ?>/">Leave A Comment!</a>
这非常简单,而且没有额外的CSS,因为您的评论页面继承了与帖子相同的模板。是的,我在这里分享答案之前尝试过这个。它就像一个符咒!屏幕截图(粗糙但有效…)
基于“Provide a Better Reading Experience in your WordPress Blog“Amit Agarwal