复制评论区功能,并将其称为自定义帖子类型的其他功能

时间:2017-06-29 作者:BobsBurger

我有一个自定义的帖子类型,我想让人们留言,但我不想称之为“评论”。如何复制注释功能并将其称为自定义帖子类型的其他功能?

我不想让这些内容出现在WordPress仪表板的一般评论部分,就像只针对自定义帖子类型的评论一样。

1 个回复
SO网友:Andrii Shekhirev

您仍然可以对自定义帖子类型使用核心注释功能,然后过滤编辑注释。php管理屏幕,并使用所需的注释表创建一个新的管理页面。

第1步。Removing the comments from the edit-comments.php admin screen 可以使用comments_clauses 过滤器:

<?php

// Remove comments for specific post type (\'project\' in this case)
function exclude_comments_on_post_type( $clauses, $wp_comment_query ) {
    global $wpdb;
    if ( ! $wp_comment_query -> query_vars[\'post_type\' ] ) {
        $clauses[\'where\'] .= $wpdb->prepare( " AND {$wpdb->posts}.post_type != %s", \'project\' );
    }
    return $clauses;
}

// Load the above only on the needed admin screen
function exclude_comments_on_post_type_hook( $screen ) {
    if ( $screen->id == \'edit-comments\' ) {
        add_filter( \'comments_clauses\', \'exclude_comments_on_post_type\', 10, 2 );
    }    
}

// Execute the hook
add_action( \'current_screen\', \'exclude_comments_on_post_type_hook\', 10, 2 );
第2步。为了display those comments elsewhere in the admin interface, 您需要使用add_menu_page() 函数并插入一个自定义WP\\U List\\U表实例,该实例将显示该帖子类型的注释。由于阅读时间很长,我只在这里发布一个链接,不粘贴所有细节:https://www.sitepoint.com/using-wp_list_table-to-create-wordpress-admin-tables/

结束