ap_the_comments( mixed $_post = null, array $args = array(), array $single = false )
Description #
Output comment wrapper.
Parameters #
- $_postmixed (Optional) Post ID or object. Default value: null
- $argsarray (Optional) Arguments. Default value: array()
- $singlearray (Optional) Is on single page? Default is
false. Default value: false
Changelog #
Source #
File: includes/comments.php
function ap_the_comments( $_post = null, $args = array(), $single = false ) {
// If comment number is 0 then dont show on single question.
if ( $single && ap_opt( 'comment_number' ) < 1 ) {
return;
}
global $comment;
$_post = ap_get_post( $_post );
// Check if valid post.
if ( ! $_post || ! in_array( $_post->post_type, array( 'question', 'answer' ), true ) ) {
echo '<div class="ap-comment-no-perm">' . esc_attr__( 'Not a valid post ID.', 'anspress-question-answer' ) . '</div>';
return;
}
if ( ! ap_user_can_read_comments( $_post ) ) {
echo '<div class="ap-comment-no-perm">' . esc_attr__( 'Sorry, you do not have permission to read comments.', 'anspress-question-answer' ) . '</div>';
return;
}
if ( 'question' === $_post->post_type && ap_opt( 'disable_comments_on_question' ) ) {
return;
}
if ( 'answer' === $_post->post_type && ap_opt( 'disable_comments_on_answer' ) ) {
return;
}
if ( 0 == get_comments_number( $_post->ID ) ) { // phpcs:ignore Universal.Operators.StrictComparisons.LooseEqual
if ( ! $single ) {
echo '<div class="ap-comment-no-perm">' . esc_attr__( 'No comments found.', 'anspress-question-answer' ) . '</div>';
}
return;
}
$user_id = get_current_user_id();
$paged = (int) max( 1, ap_isset_post_value( 'paged', 1 ) );
$default = array(
'post_id' => $_post->ID,
'order' => 'ASC',
'status' => 'approve',
'number' => $single ? ap_opt( 'comment_number' ) : 99,
'show_more' => true,
'no_found_rows' => false,
);
// Always include current user comments.
if ( ! empty( $user_id ) && $user_id > 0 ) {
$default['include_unapproved'] = array( $user_id );
}
if ( ap_user_can_approve_comment() ) {
$default['status'] = 'all';
}
$args = wp_parse_args( $args, $default );
if ( $paged > 1 ) {
$args['offset'] = ap_opt( 'comment_number' );
}
$query = new WP_Comment_Query( $args );
if ( 0 == $query->found_comments && ! $single ) { // phpcs:ignore Universal.Operators.StrictComparisons.LooseEqual
echo '<div class="ap-comment-no-perm">' . esc_attr__( 'No comments found.', 'anspress-question-answer' ) . '</div>';
return;
}
foreach ( $query->comments as $c ) {
$comment = $c; // phpcs:ignore WordPress.WP.GlobalVariablesOverride.Prohibited
ap_get_template_part( 'comment' );
}
echo '<div class="ap-comments-footer">';
if ( $query->max_num_pages > 1 && $single ) {
echo '<a class="ap-view-comments" href="#/comments/' . (int) $_post->ID . '/all">' .
// translators: %s is total comments found.
esc_attr( sprintf( __( 'Show %s more comments', 'anspress-question-answer' ), $query->found_comments - ap_opt( 'comment_number' ) ) ) . '</a>';
}
echo '</div>';
}
Expand full source code Collapse full source code View on GitHub: includes/comments.php:344
Add your comment