Поддержка Проблемы и решения подскажите с wp_query

  • Решено Flector

    (@flector)


    такой код:

    
    <?php if ( $vibor=='serial' ) : ?>  
    <?php 
    $temp = get_field("sname"); 
    $currentID = get_the_ID();
    
    $args = array(
    	'post_type'  => 'movie',
        'orderby' => 'meta_value_num',
        'order' => 'ASC',
    	'meta_query' => array(
        'relation' => 'AND',
    		array(
    			'key'     => 'sname',
    			'value'   => $temp,
    			'compare' => '=',
    		),
    		array(
    			'key' => 'season',
    			'value'   => array( 1, 100 ),
    			'type'    => 'numeric',
    			'compare' => 'BETWEEN',
    		),
    	),
    );
    $the_query = new WP_Query( $args );
    $count = $the_query->post_count;
    $i = 0;
    
    if ($count > 1) {
    echo '<p id="otherseasons">';
    echo '<strong>Все сезоны сериала</strong><br />';
    while ( $the_query->have_posts() ) : $the_query->the_post(); 
    
        $season = get_field("season"); 
        
        if ($currentID != get_the_ID()) {
            echo '<a href="'. get_the_permalink() .'">' . $season . ' сезон</a>'; 
        } else {
            echo '<strong>' . $season . ' сезон</strong>'; 
        }
    
        $i++; if ($i !== $count) echo ' • '; 
    endwhile;
    echo '</p>';
    }
    
    wp_reset_query(); ?>
    <?php endif; ?>  
    

    выводит ссылки на сезоны сериала, типа:

    все вроде бы работало хорошо при создании сайта, но после установки темы у клиента стало время от времени выдавать что-то типа:

    но почему-то не всегда.
    очевидно, что я накосячил с запросом.
    только вот не пойму где.

    смысл такой — выбрать все записи с ключом sname и ключом season, и отсортировать их по ключу season от меньшего к большему.

Просмотр 1 ответа (всего 1)
  • Автор Flector

    (@flector)

    а, по фигу, исправил так:

    
    $args = array(
    	'post_type'  => 'movie',
    	'meta_query' => array(
        'relation' => 'AND',
    		array(
    			'key'     => 'sname',
    			'value'   => $temp,
    			'compare' => '=',
    		),
    		array(
    			'key' => 'season',
    			'compare' => 'EXISTS',
    		), 
    	),
        'orderby' => array('season' => 'ASC'),
    );
    

    вроде работает.

Просмотр 1 ответа (всего 1)
  • Тема «подскажите с wp_query» закрыта для новых ответов.