Hi Prafulla Kumar Sahu,
Thank you for getting in touch with us. Please try this code below here
add_filter( 'dwqa_prepare_archive_posts', 'dwqa_refilter_question' );
function dwqa_refilter_question( $args ) {
if ( isset( $_GET['filter'] ) && $_GET['filter'] == 'my-answer' ) {
$user_id = get_current_user_id();
$answer_args = array(
'post_type' => 'dwqa-answer',
'posts_per_page' => 5,
'no_found_rows' => true,
'update_post_term_cache' => false,
'update_post_meta_cache' => false,
'orderby' => 'date',
'order' => 'DESC',
'fields' => 'ids',
'meta_key' => '_question',
'author' => get_current_user_id()
);
add_filter( 'posts_where', 'dwqa_answer_post_where' );
add_filter( 'posts_clauses', 'dwqa_answer_posts_clauses' );
add_filter( 'posts_distinct', 'dwqa_answer_post_distinct' );
$questions = new WP_Query( $answer_args );
remove_filter( 'posts_where', 'dwqa_answer_post_where' );
remove_filter( 'posts_clauses', 'dwqa_answer_posts_clauses' );
remove_filter( 'posts_distinct', 'dwqa_answer_post_distinct' );
if ( $questions->have_posts() ) {
$args['post__in'] = $questions->posts;
}
}
return $args;
}
function dwqa_answer_post_join( $join ) {
global $wpdb;
if ( isset( $_GET['filter'] ) && $_GET['filter'] == 'my-answer' ) {
$join .= 'JOIN {$wpdb->postmeta} ON {$wpdb->posts}.ID = {$wpdb->postmeta}.post_id ';
}
}
function dwqa_answer_post_where( $where ) {
global $wpdb;
if ( isset( $_GET['filter'] ) && $_GET['filter'] == 'my-answer' ) {
$user_id = get_current_user_id();
$where .= " AND {$wpdb->postmeta}.meta_key = '_question' ";
}
return $where;
}
function dwqa_answer_posts_clauses( $clauses ) {
global $wpdb;
$clauses['fields'] = $wpdb->postmeta . '.meta_value';
return $clauses;
}
function dwqa_answer_post_distinct( $distinct ) {
return "DISTINCT";
}