AnsPress_Ajax::suggest_similar_questions()
Description #
Show similar questions while asking a question.
Source #
File: includes/ajax-hooks.php
public static function suggest_similar_questions() {
// Die if question suggestion is disabled.
if ( ap_disable_question_suggestion() ) {
wp_die( 'false' );
}
$keyword = ap_sanitize_unslash( 'value', 'request' );
if ( empty( $keyword ) || ( ! ap_verify_default_nonce() && ! current_user_can( 'manage_options' ) ) ) {
wp_die( 'false' );
}
$keyword = ap_sanitize_unslash( 'value', 'request' );
$is_admin = (bool) ap_isset_post_value( 'is_admin', false );
$questions = get_posts(
array(
'post_type' => 'question',
'showposts' => 10,
's' => $keyword,
)
);
if ( $questions ) {
$items = '<div class="ap-similar-questions-head">';
// translators: %d is count of questions.
$items .= '<p><strong>' . sprintf( _n( '%d similar question found', '%d similar questions found', count( $questions ), 'anspress-question-answer' ), count( $questions ) ) . '</strong></p>';
$items .= '<p>' . __( 'We have found some similar questions that have been asked earlier.', 'anspress-question-answer' ) . '</p>';
$items .= '</div>';
$items .= '<div class="ap-similar-questions">';
foreach ( (array) $questions as $p ) {
$count = ap_get_answers_count( $p->ID );
$p->post_title = ap_highlight_words( $p->post_title, $keyword );
if ( $is_admin ) {
$items .= '<div class="ap-q-suggestion-item clearfix"><a class="select-question-button button button-primary button-small" href="' . add_query_arg(
array(
'post_type' => 'answer',
'post_parent' => $p->ID,
),
admin_url( 'post-new.php' )
) . '">' . __( 'Select', 'anspress-question-answer' ) . '</a><span class="question-title">' .
// translators: %d is total answer count.
$p->post_title . '</span><span class="acount">' . sprintf( _n( '%d Answer', '%d Answers', $count, 'anspress-question-answer' ), $count ) . '</span></div>';
} else {
// translators: %d is total answer count.
$items .= '<a class="ap-sqitem clearfix" target="_blank" href="' . get_permalink( $p->ID ) . '"><span class="acount">' . sprintf( _n( '%d Answer', '%d Answers', $count, 'anspress-question-answer' ), $count ) . '</span><span class="ap-title">' . $p->post_title . '</span></a>';
}
}
$items .= '</div>';
$result = array(
'status' => true,
'html' => $items,
);
} else {
$result = array(
'status' => false,
'message' => __( 'No related questions found.', 'anspress-question-answer' ),
);
}
ap_ajax_json( $result );
}
Expand full source code Collapse full source code View on GitHub: includes/ajax-hooks.php:82
Add your comment