Wordpress НЕ вошел в систему не возвращает сообщения с запросами - PullRequest
0 голосов
/ 05 сентября 2018

Я работаю над сайтом и создал собственный метод фильтрации. Каждый пост имеет 2 пользовательских поля ACF. Я правильно установил аргументы, запросы и все сообщения, пока я вошел в систему ТОЛЬКО.

Если я пытаюсь отобразить сообщения как незарегистрированный пользователь ... он ничего не показывает.

Проблема: Я пытаюсь отобразить сообщения, используя wp_query и meta_query, связанные между оператором AND и значениями, добавленными динамически.

Вопрос Почему я могу показывать сообщения, используя тот же синтаксис, ТОЛЬКО когда я вошел в систему, но не когда я вышел из системы.

Дополнительная информация Я использую wp_ajax, плагин ACF.

Код:

function filtering_program(){
  $luna = $_POST['data'][0];
  $ziua = $_POST['data'][1];

  $args = array(
    'post_type'      => 'program',
    'orderby'        => 'date',
    'order'          => 'DESC',
    'posts_per_page' => -1,
    'meta_query'     => array(
        'relation'     => 'AND',
        array(
          'key'        => 'ziua',
          'value'      => $ziua,
          'compare'    => 'LIKE'
        ),
        array(
          'key'        => 'luna_anului',
          'value'      => $luna_number,
          'compare'    => 'LIKE'
        )
    )
  );

  $posts = new WP_Query( $args );

  if ( $posts -> have_posts() ) {

  }

  wp_die();
}
add_action('wp_ajax_program_filter', 'filtering_program');
add_action('wp_ajax_nopriv_program_filter', 'filtering_program');

ФУНКЦИИ PHP заканчивается здесь

Теперь дескриптор js и запрос ajax

$('.dd-program').click(function(){
        $this = $(this);

        if($(this).hasClass('options-month')){
            $datas[0] = $(this).parent().find('.selected-program-filter').html();
        }else{
            $datas[1] = $(this).parent().find('.selected-program-filter').html();
        }

        var payload = {
            'action': 'program_filter',
            'data': $datas
        };

        $.ajax({
            url: loadmore_params.ajaxurl,
            data: payload,
            type: 'POST',
            beforeSend : function ( xhr ) {
                $('.posts-data .container .flex-grid').addClass('isLoading');
                $('.posts-data .container .flex-grid').html('<div class="col"></div><div class="col"></div><div class="col"></div><div class="col"></div><div id="loading"></div>');
                $('.posts-load-more').css('display', 'none');
            },
            success : function( data ){
                console.log(data);

                if( data ) {
                    if($this.data("lang") == "RO"){
                        $('.posts-data .container .flex-grid').html(data.replaceArray([">Locatie<", "No posts!"], [">Locație<", "<h3>Nu exista evenimente!</h3>"]));
                    }else{
                        $('.posts-data .container .flex-grid').html(data.replaceArray([">Locatie<", "No posts!"], [">Location<", "<h3>No events!</h3>"]));
                    }
                }
            }
        });
    });

1 Ответ

0 голосов
/ 05 сентября 2018

В вашем коде js попробуйте заменить все $ на jQuery.

Например:

$('.dd-program').click(function(){ 

заменить на

jQuery('.dd-program').click(function(){ 

И то же самое для остальной части кода.

...