我能把评论和帖子分开吗?

时间:2012-05-16 作者:Jenny

我有一种附件需要全屏显示。所以,我需要把评论表放在其他地方。我怎样才能告诉WP这些评论属于帖子?

3 个回复
最合适的回答,由SO网友:its_me 整理而成

现在大多数入门主题,如Twenty Eleven, 为每个模板提供单独的文件-例如,single.phpcontent-single.php 在211中表示单个(Post)模板。

我使用的初学者主题,Reddle (ddl), 具有相同的模板层次结构,下面是我正在使用的解决方案。。。

  1. 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,因为您的评论页面继承了与帖子相同的模板。是的,我在这里分享答案之前尝试过这个。它就像一个符咒!

    屏幕截图(粗糙但有效…)

    Screenshot

    基于“Provide a Better Reading Experience in your WordPress Blog“Amit Agarwal

SO网友:Wyck

这有点复杂,因为要让它工作,需要做几件事。我建议您将其作为插件编写,而不是将其转储到主题中。

您首先需要的是实际的帖子评论,这里有两个选项:

  1. get_comments: http://codex.wordpress.org/Function_Reference/get_comments
  2. wp_list_comments http://codex.wordpress.org/Function_Reference/wp_list_comments
两者都需要传递post ID,我建议为wp_list_comments.

您还需要使用另一个名为comment_form 呈现输入以进行实际注释。http://codex.wordpress.org/Function_Reference/comment_form

评论的输入和输出很简单,挑战是在帖子和单独的评论表单/显示之间建立关系,以便用户可以轻松地来回导航。我建议阅读MikeSchinkel在这篇文章中的回答来完成这一点
Linking to Page Showing Only Comments Without Parent Post

SO网友:Diana

就像路透社一样,有标签的帖子页面怎么样。com。您可以使用纯css或ajax,直观地将帖子内容与评论分开。

结束

相关推荐

WP_LIST_COMMENTS中的注释日期不起作用吗?

我正试图在wordpress网站上创建我的第一个评论列表和评论表单,但日期显示为%e %B %Y at %H:%M 而不是日期。看起来date format 无法识别。我只是编写了以下代码:<?php $args = array ( \'avatar_size\' => 48 ); wp_list_comments($args); ?> <?php comment_form(); ?>&#