ap_get_answer_position_paged( boolean|integer $question_id = false, boolean|integer $answer_id = false )
Description #
Return paged position of answer.
Parameters #
- $question_idboolean | integer (Optional) Question ID. Default value: false
- $answer_idboolean | integer (Optional) Answer ID. Default value: false
Source #
File: includes/answer-loop.php
function ap_get_answer_position_paged( $question_id = false, $answer_id = false ) { global $wpdb; if ( false === $question_id ) { $question_id = get_question_id(); } if ( false === $answer_id ) { $answer_id = get_query_var( 'answer_id' ); } $user_id = get_current_user_id(); $ap_order_by = ap_get_current_list_filters( 'order_by', 'active' ); if ( 'voted' === $ap_order_by ) { $orderby = 'CASE WHEN IFNULL(qameta.votes_up - qameta.votes_down, 0) >= 0 THEN 1 ELSE 2 END ASC, ABS(qameta.votes_up - qameta.votes_down) DESC'; } if ( 'oldest' === $ap_order_by ) { $orderby = "{$wpdb->posts}.post_date ASC"; } elseif ( 'newest' === $ap_order_by ) { $orderby = "{$wpdb->posts}.post_date DESC"; } else { $orderby = 'qameta.last_updated DESC '; } $post_status = array( 'publish' ); // Check if user can read private post. if ( ap_user_can_view_private_post() ) { $post_status[] = 'private_post'; } // Check if user can read moderate posts. if ( ap_user_can_view_moderate_post() ) { $post_status[] = 'moderate'; } // Show trash posts to super admin. if ( is_super_admin() ) { $post_status[] = 'trash'; } $status = "p.post_status IN ('" . implode( "','", $post_status ) . "')"; $ids = $wpdb->get_col( $wpdb->prepare( "SELECT p.ID FROM $wpdb->posts p LEFT JOIN $wpdb->ap_qameta qameta ON qameta.post_id = p.ID WHERE p.post_type = 'answer' AND p.post_parent = %d AND ( $status OR ( p.post_author = %d AND p.post_status IN ('publish', 'private_post', 'trash', 'moderate') ) ) ORDER BY $orderby", $question_id, $user_id ) ); // phpcs:ignore WordPress.DB $pos = (int) array_search( $answer_id, $ids ) + 1; // phpcs:ignore WordPress.PHP.StrictInArray.MissingTrueStrict $paged = ceil( $pos / ap_opt( 'answers_per_page' ) ); return $paged; }
Expand full source code Collapse full source code View on GitHub: includes/answer-loop.php:414
Add your comment