Я создаю веб-сайт, на котором пользователь может публиковать статьи, используя WordPress (я создаю свою собственную тему). А на домашней странице пользователь будет просматривать сообщения, за которыми следуют пользователи (например, временная шкала Twitter). Я использую бесконечную прокрутку на основе jQuery для замены нумерации страниц.
Все нормально и работает, если я вхожу в систему как администратор, проблема в том, что я вхожу в систему как другая привилегия, такая как автор. Страница будет загружать только первую страницу. И другая страница не будет загружена.
Это мой код в function.php:
//-----------------Infinite Scroll-------------------------------
/*
* initial posts dispaly
*/
function script_load_more($args = array()) {
//initial posts load
echo '<div id="ajax-primary" class="content-area">';
echo '<div id="ajax-content" class="content-area">';
ajax_script_load_more($args);
echo '</div>';
echo '<center><a href="#" id="loadMore" data-page="1" data-url="'.admin_url("admin-ajax.php").'" ></a></center>';
echo '</div>';
}
/*
* create short code.
*/
add_shortcode('ajax_posts', 'script_load_more');
/*
* load more script call back
*/
function ajax_script_load_more($args) {
//init ajax
$ajax = false;
//check ajax call or not
if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) &&
strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
$ajax = true;
}
global $wpdb;
$cekpost = $wpdb->get_results ( "SELECT post_author FROM ".$wpdb->prefix."posts WHERE post_author = ".get_current_user_id()." AND post_status='publish'");
$result = $wpdb->get_results ( "SELECT follow FROM ".$wpdb->prefix."follow WHERE user = ".get_current_user_id());
if (sizeof($cekpost)>0 OR sizeof($result)>0){
//number of posts per page default
$num =5;
//page number
$paged = $_POST['page'] + 1;
$jumlah=count($result);;
$i=0;
$following = get_current_user_id();
foreach ( $result as $hasil )
{
$i++;
//if ($i<$jumlah){
$following=$following.",".$hasil->follow;
//$following=$following.",";
//}
}
//echo $following;
if ($following!=null){
echo "inside following".get_current_user_id();
//args
$args = array(
'post_type' => 'post',
//'author' => $following,
'post_status' => 'publish',
'posts_per_page' =>$num,
'paged'=>$paged
);
//query
$query = new WP_Query($args);
//var_dump($query);
//check
if ($query->have_posts()):
//loop articles
while ($query->have_posts()): $query->the_post();
include 'ajax-content.php';
//reset post data
wp_reset_postdata();
endwhile;
endif;
}
//check ajax call
if($ajax) die();
} else {
include_once "postuser.php";
}
}