Do not query similar content using custom meta on Ajax WordPress
Question
I got the relelated content from costum meta using it and it works fine but when I use Ajax it query "relation" applies it incorrectly
add_action( 'wp_enqueue_scripts', 'related_video_scripts' );
function related_video_scripts() {
wp_localize_script( 'scripts', 'videolist', array(
'ajax_url' => admin_url( 'admin-ajax.php' )
));
}
add_action( 'wp_ajax_nopriv_all_video', 'all_video' );
add_action( 'wp_ajax_all_video', 'all_video' );
function all_video() {
if ( defined( 'DOING_AJAX' ) && DOING_AJAX ) {
global $post;
$html = '<ul id="all-video" class="video-box row-1">';
$artist = get_post_meta(get_the_ID(), 'name', true);
$artist1 = get_post_meta(get_the_ID(), 'name1', true);
$artist2 = get_post_meta(get_the_ID(), 'name2', true);
$relate_video = get_posts(
array(
//'numberposts' => -1,
'post_type' => 'post',
//'post_format' => 'post-format-video',
'post_status' => 'publish',
'meta_key' => 'name',
'order' => 'DESC',
'orderby' => 'meta_value',
'posts_per_page' =>'6',
'post__not_in' => array( $post->ID ),
'meta_query' => array(
'relation' => 'OR',
array(
'key' => 'name',
'value' => $artist,
'compare' => 'LIKE'
),
array(
'key' => 'name',
'value' => $artist1,
'compare' => '='
),
array(
'key' => 'name',
'value' => $artist2,
'compare' => '='
)
)
)
);
if( $relate_video ){
foreach( $relate_video as $post ) {
$title = $post->name.' - '.$post->song;
if ( empty($post->name) || empty($post->song) ) {
$title = $post->post_title;
}
$images = get_the_post_thumbnail( $post->ID, 'medium', array('class' => '', 'alt'=> $title) );
$html .= '<li class="video-post row-6"><span class="icon-play"></span><a class="data-audio" href="'.get_permalink($post->ID).'">'.$images.$title.'</a></li>';
}
wp_reset_query();
wp_reset_postdata();
}
echo $html .'</ul>';
die();
}
}
0
2 years
2020-12-29T07:10:20-05:00
2020-12-29T07:10:20-05:00 0 Answers
1 views
0
Leave an answer