Задать вопрос

Как сделать ajax загрузку поста в определенный DIV wordpress?

Добрый день! На данный момент код рабочий, но с ним я лишаюсь возможности использовать файл single.php по назначению, можно ли переназначить файл, к которому будем обращаться?

// Куда кликаю, чтобы вызвать функцию
<a class="post-link" rel="<?php the_ID(); ?>" href="<?php the_permalink(); ?>">
                    <article <?php post_class(); ?>>
                                <h3><?php the_title(); ?></h3>
                    </article>
                </a>

// Где появится контент после клика

<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
            <div id="single-post-container" class="relative m-sm-1 w-sm-3">
                <article id="<?php $category = get_the_category(); echo $category[0]->cat_name; ?>"> 
                
                </article>
            </div>
        <?php endwhile; endif; ?>


js:
$.ajaxSetup({cache:false});
        $(".post-link").click(function(){
            var post_link = $(this).attr("href");
            $("#single-post-container").html("Загрузка...");
            $("#single-post-container").load(post_link);
            return false;
        });


single.php :
<?php $post = get_post($_POST['id']); ?>
<div id="single-post post-<?php the_ID(); ?>">
<?php while (have_posts()) : the_post(); ?>
    <header class="post-title">
        <h2><?php the_title(); ?></h2>
    </header> 
    <div class="post-content">
        <?php the_content(); ?>
    </div>
<?php endwhile;?>
  • Вопрос задан
  • 1142 просмотра
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 2
@Forsaider
Возможно так?

index.php:
<script>
										var ajaxurl = '<?php echo site_url() ?>/wp-admin/admin-ajax.php';
										var true_posts = '<?php echo serialize($wp_query->query_vars); ?>';
										var current_page = <?php echo (get_query_var('paged')) ? get_query_var('paged') : 2; ?>;
										var max_pages = '<?php echo $wp_query->max_num_pages; ?>';
			                        </script>
			                        <div id="true_loadmore" class="load_button"><span class="load_ico"></span><span class="load_txt">Загрузить ещё</span></div>


functions.php:
function true_load_posts(){
	$args = unserialize(stripslashes($_POST['query']));
	$args['paged'] = $_POST['page'] + 1; // следующая страница

	$q = new WP_Query($args);
	if( $q->have_posts() ):
		while($q->have_posts()): $q->the_post();
			?>

            <?php
				$thumb_id = get_post_thumbnail_id();
				$thumb_url = wp_get_attachment_image_src($thumb_id,'thumbnail-size', true);
			?>
			// Здесь шаблона вывода поста
			<?php
		endwhile;
	endif;
	wp_reset_postdata();
	die();
}
Ответ написан
sevasargsyan
@sevasargsyan
Веб разработчик
Создай 2 single.php
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы