fictioneer/comments.php
2023-08-22 01:01:16 +02:00

105 lines
2.8 KiB
PHP

<?php
/**
* Template Part: Comments
*
* Renders the comment form and threads.
*
* @package WordPress
* @subpackage Fictioneer
* @since 4.7
*/
?>
<?php
// Don't show the comments if the password has not been entered
if ( post_password_required() ) {
return;
}
// Setup
$user = wp_get_current_user();
$comments_count = get_comments_number();
$logout_url = fictioneer_get_logout_url( get_permalink() );
?>
<div id="comments" class="fictioneer-comments" data-post-id="<?php echo get_the_ID(); ?>" data-logout-url="<?php echo esc_url( $logout_url ); ?>">
<?php
if ( get_option( 'fictioneer_enable_ajax_comments' ) ) {
fictioneer_comments_ajax_skeleton( $comments_count ); // AJAX loading skeleton
} else {
// Query arguments
$query_args = ['post_id' => get_the_ID()];
if ( ! get_option( 'fictioneer_disable_comment_query' ) ) {
$query_args['type'] = ['comment', 'private'];
$query_args['order'] = get_option( 'comment_order' );
} else {
$query_args['type'] = ['comment'];
}
// Filter query arguments
$query_args = apply_filters( 'fictioneer_filter_comments_query', $query_args, get_the_ID() );
// Query comments
$comments_query = new WP_Comment_Query( $query_args );
$comments = $comments_query->comments;
// Filter comments
$comments = apply_filters( 'fictioneer_filter_comments', $comments, get_the_ID() );
// Comments header
fictioneer_comment_header( $comments_count );
// Comment form
if ( ! fictioneer_is_commenting_disabled() ) {
if ( get_option( 'fictioneer_enable_ajax_comment_form' ) ) {
fictioneer_comments_ajax_form_skeleton();
} else {
comment_form();
}
} else {
echo '<div class="fictioneer-comments__disabled">' . __( 'Comments are disabled.', 'fictioneer' ) . '</div>';
}
// Count all comments regardless of status
$count = count( $comments );
// Comment list
if (
have_comments() ||
( $count > 0 && user_can( $user, 'moderate_comments' ) ) ||
( $count > 0 && ! empty( $_GET['commentcode'] ) )
) {
// Start HTML ---> ?>
<ol class="fictioneer-comments__list commentlist">
<?php wp_list_comments( [], $comments ); ?>
</ol>
<?php // <--- End HTML
// Pagination
$pag_args = [];
if ( ! get_option( 'fictioneer_disable_comment_pagination' ) ) {
$pag_args['prev_text'] = fcntr( 'previous' );
$pag_args['next_text'] = fcntr( 'next' );
}
the_comments_pagination( $pag_args );
}
}
// Edit template
if (
get_option( 'fictioneer_enable_user_comment_editing' ) &&
! fictioneer_is_commenting_disabled()
) {
get_template_part( 'partials/_template_comment_edit' );
}
?>
</div>