Wordpress использовать запрос как AJAX - PullRequest
0 голосов
/ 24 августа 2018

У меня есть поле выбора, в котором я выбрал, какие сообщения я хочу отображать. Теперь я хочу, чтобы запрос, в котором я получал выбранные сообщения и его настраиваемые поля, каким-то образом использовался в качестве AJAX-вызова, чтобы я мог использовать вывод данных для построения masonry -сетки. Это возможно?

вот мои данные / запрос:

$posts = get_field('choose_artist');

if( $posts ): ?>
<?php foreach( $posts as $p ): ?>
    <div class="artist">
        <a href="<?php echo get_permalink( $p->ID ); ?>">
                <div style="position: relative;">
                    <?php $image = get_field('artist_image', $p->ID); ?>
                    <div class="artist-image" style="background-image:url('<?php echo $image['url']; ?>')"></div>
                    <div class="overlay">
                        <div class="content">
                            <p><?php the_field('artist_name', $p->ID); ?></p>
                        </div>
                    </div>
                </div>
            </a>
    </div>
<?php endforeach; ?>

Итак, моя цель примерно такая:

$.ajax({
 url: '/the query above',
 success: function(data){
     data is the query html
 }})

Это вообще возможно?

1 Ответ

0 голосов
/ 24 августа 2018

ajax.php

     $content = '';
     if( $posts ) {
        foreach( $posts as $p ) {
            $image = get_field('artist_image', $p->ID);
            $content .= '<div class="artist">';
            $content .= '<a href="' . get_permalink( $p->ID ) . '">';
            $content .= '<div style="position: relative;">';
            $content .= '<div class="artist-image" style="background-image:url("' . $image['url'] . '")"></div>';
            $content .= '<div class="overlay">';
            $content .= '<div class="content">';
            $content .= '<p>' . get_the_field('artist_name', $p->ID). '</p>';
            $content .= '</div>';
            $content .= '</div>';
            $content .= '</div>';
            $content .= '</a>';
            $content .= '</div>';
        }   
     }
     echo $content;

main.js / .php (везде, где у вас есть вызов ajax)

$.ajax({
 url: '/ajax.php', //Path to the ajax.php script
 success: function(data){
     console.log(data);
 }});

Проверьте документацию о том, как отлавливать ошибки, проверять успешностьи т. д. и т. д .: http://api.jquery.com/jquery.ajax/

Существуют более эффективные способы создания страницы AJAX, поэтому реорганизуйте ее и сделайте ее более аккуратной, но что-то похожее на приведенное выше должно работать для вас, если я понимаю ваши потребности, хотя выВам, вероятно, придется настроить его, чтобы получить то, что вы хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...