【问题标题】:Wordpress: Changing a posts category after a comment is postedWordpress:发表评论后更改帖子类别
【发布时间】:2013-09-02 11:40:25
【问题描述】:

有很多关于更改帖子类别的信息,但没有任何具体与评论后更改帖子类别相关的信息。

我希望我的网站有一个部分只显示带有 cmets 的帖子。

我已经尝试在十几个不同的地方添加我在这个网站上找到的用于更改标签的代码

<?php wp_set_object_terms( '<?php the_ID(); ?>', 'new', 'category', 'true' ); ?>

我试过用它

<?php if ( have_comments() ) : ?>
<?php endif; ?>

我已尝试将 wp_insert_comment 和 comment_post 挂钩与互联网上的其他代码一起使用,但没有成功。

我想在发表评论后在帖子中添加标签也可以达到同样的效果,但我不知道从哪里开始。

这里的专家有没有见过一个 wordpress 博客,它有一个单独的区域,只显示带有 cmets 的帖子?我不是程序员,我可能会在不知不觉中尝试不可能的事情。

任何帮助表示赞赏。

【问题讨论】:

标签: wordpress tags comments categories


【解决方案1】:

您可以使用comment_post 动作挂钩。此函数不能将帖子 ID 或 $post 对象作为参数,因此您必须添加 global $post; 才能访问它。 来自wp-includes/comment.php

do_action('comment_post', $comment_ID, $commentdata['comment_approved']);

使用示例

//in functions.php
    add_action( 'comment_post', 'so_custom_comment_post' );
    function so_custom_comment_post(){
      global $post;
      //Be sure the term 'new' is already available
      wp_set_object_terms( $post->ID, 'new', 'category', true );
    }

希望对您有所帮助!如果您遇到困难,请告诉我。

【讨论】:

    【解决方案2】:
    <?php
    $args = array('post_type' => 'post');
    $post_obj = new WP_Query($args);
    while($post_obj->have_posts() ) : $post_obj->the_post();
        //display posts with comments
        $comments = get_comments(array(
            'post_id' => $post->ID));
        foreach($comments as $comment) { 
            echo '<li>'.the_permalink().'</li>';
        }
     endwhile;
     ?> 
    

    【讨论】:

    • 你好,我现在就试一试。
    • 所以可以用cmets获取帖子列表,谢谢!
    • 具有多个 cmets 的帖子显然不止一次在列表中显示,这使得这不可行,但它对我来说是一个很好的起点。为帖子添加标签/类别是个好主意,但这是另一条路线的良好起点。
    猜你喜欢
    • 2018-07-17
    • 1970-01-01
    • 2014-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多