Ajax загрузить больше пользовательского типа Post WordPressJquery

Программирование на jquery
Ответить
Anonymous
 Ajax загрузить больше пользовательского типа Post WordPress

Сообщение Anonymous »

Я пытаюсь загрузить больше публикации, вызывая пользовательский тип поста с помощью массива таксономии, чтобы разобраться с специфическим сообщением или всем портом журнала. Если вы нажмете больше загрузки, и нет никакого сообщения для возврата, пользователь получит сообщение. На данный момент, когда я нажимаю кнопку «Загрузить больше», кажется, что фанситон просто зацикливается на том, что не возвращает еще 3 сообщения. WordPress Ajax загружать больше функциональности после. С размещением, чтобы отобразить 3 Post и загрузить больше функциональности кнопки, чтобы вернуть 3 сообщения на каждом щелчке, пока все сообщения не будут возвращены. < /p>














var limit = 3,
page = 1,
type = 'latest',
category = '',
max_pages_latest =



Sorry...






< /code>
Второй шаг: < /strong>
разработал фрагмент фильтра сценария внизу в нижней части файла функций. Полем Верхняя функция загружает файлы AJAX в установку WordPress, включая созданный я созданный файл Ajax, который находится на третьем шаге. Вторая функция перемещает сообщение от обработчика Ajax. < /P>
function bsubash_load_more_scripts() {
wp_enqueue_script('jquery');
wp_register_script( 'loadmore_script', get_stylesheet_directory_uri() . '/js/ajax.js', array('jquery') );
wp_localize_script( 'loadmore_script', 'loadmore_params', array(
'ajaxurl' => admin_url('admin-ajax.php'),
) );

wp_enqueue_script( 'loadmore_script' );
}

add_action( 'wp_enqueue_scripts','bsubash_load_more_scripts' );

function bsubash_loadmore_ajax_handler(){
$type = $_POST['type'];
$category = isset($_POST['category']) ? $_POST['category']: '';
$args['paged'] = $_POST['page'] + 1;
$args['post_status'] = 'publish';
$args['posts_per_page'] = $_POST['limit'];
if($type == 'archive'){
$args['category_name'] = $category;
}
query_posts( $args );
if( have_posts() ) :
while(have_posts()): the_post();
//write your single post card
the_title();
the_excerpt();
endwhile;
endif;
die;
}
add_action('wp_ajax_loadmore','bsubash_loadmore_ajax_handler');
add_action('wp_ajax_nopriv_loadmore','bsubash_loadmore_ajax_handler');
< /code>
окончательный шаг: < /strong>
создал файл ajax.js, который живет в моей папке темы /js/ajax.js, который вы увидите в Funciton на втором шаге. Ajax не вернет сообщение после того, как вы нажимаете на загрузку больше, включая отображение загрузки и загрузку более статических сообщений. Кажется, это работает нормально. < /P>
jQuery(function($) {
$('.btn-load-more').click(function(e) {
e.preventDefault();
var button = $(this),
data = {
'action': 'loadmore',
'limit': limit,
'page': page,
'type': type,
'category': category
};

$.ajax({
url: loadmore_params.ajaxurl,
data: data,
type: 'POST',
beforeSend: function(xhr) {
button.text('Loading...'); // change the button text, you can also add a preloader image
},
success: function(data) {
if (data) {
$(".latest_posts_wrapper").append(data);
page++;
button.text('Load More');
if (page == max_pages_latest)
button.remove(); // if last page, remove the button
} else {
button.remove(); // if no data, remove the button as well
}
}
});
});

});
< /code>
все сделано !!! Br /> выше, в верхней части моего шаблона страницы, у меня есть другой пост, который представлен избранным сообщением. Эти посты возвращаются из прокси. Я просто указываю на это, чтобы вы знали о том, что в моем файле. Это не влияет на мою проблему. < /P>
$magazines = [];

$wp_query = new WP_Query(
array(
'post_type' => 'Magazine',
'tax_query' => array(
array (
'taxonomy' => 'magazine_categories',
'field' => $categoryId,
'terms' => $category,
'posts_per_page' => $postsPerPage,
)
),
)
);

while ($wp_query->have_posts()) : $wp_query->the_post();

//$blogProxy = new BlogProxy(get_the_ID());
$magazine = new Magazine();
$magazine->title = get_the_title();
$magazine->featured_image = get_the_post_thumbnail_url(get_the_ID());
$magazine->preview_text = get_the_excerpt();
$magazine->permalink = get_the_permalink();
$magazine->date = get_the_date();

array_push($magazines, $magazine);

endwhile;

wp_reset_postdata();

?>
< /code>
Моя цель состоит в том, чтобы разработать кнопку загрузки больше с пользовательским типом поста с помощью AJAX. Если вы выполняете шаги выше, вы должны увидеть активную функциональность, которая не возвращает сообщение после нажатия кнопки Load More.

Подробнее здесь: https://stackoverflow.com/questions/751 ... -wordpress
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Jquery»