@666Wolf666

Не работает get_post() с произвольным полем, в чем проблема?

Суть проблемы в следующем.
Нужно выводить посты с сортировкой по произвольному полю, но ничего не пашет... посмотрите код, может что-то увидите, спасибо, уже два дня с этим борюсь...
if ($rand == 1 ){
			$args = array(
		'post_type' => 'wsp_site', 
		'portfolio' => $port, 
		'numberposts' => $count,
		'tax_query' => array(
							array( 
								'taxonomy' => 'portfolio',
								'field'    => 'term_id',
								'terms'    => $id_port,),),
		'orderby' => 'rand',
				);
		wsp_view ($sites = get_posts ($args), $col);
		}
		if ($rand == 2 ) {
			$args = array(
		'post_type' => 'wsp_site', 
		'portfolio' => $port, 
		'numberposts' => $count,
		'tax_query' => array(
							array( 
								'taxonomy' => 'portfolio',
								'field'    => 'term_id',
								'terms'    => $id_port,),),
		'orderby' => 'wsp_weight', /*здесь проблема*/ 
		'order' => 'ASC'
				);
		print_r($args);
		wsp_view ($sites = get_posts ($args), $col);
		}

Название произвольного поля точно правильно, часть с рандомным отображением работает. В каком направлении двигаться?
Решил пока перебором массива методом Пузырька, но это жостко...
  • Вопрос задан
  • 411 просмотров
Решения вопроса 2
Пользовательские поля - это мета-данные, которые хранятся особым образом. Поэтому нужно упорядочивать выборку по meta_value, и в meta_query (или в meta_key) передавать название поля. Так должно работать.
$args = array(
    'post_type' => 'wsp_site', 
    'portfolio' => $port, 
    'numberposts' => $count,
    'tax_query' => array(
              array( 
                'taxonomy' => 'portfolio',
                'field'    => 'term_id',
                'terms'    => $id_port,),),
    'orderby' => 'meta_value',
    'meta_key' => 'wsp_weight',
    'order' => 'ASC'
);
Ответ написан
@666Wolf666 Автор вопроса
На кодексе нашел, как правильно выводить и сортировать.
if ($rand == 2 ) {
			$args = array(
		'post_type' => 'wsp_site', 
		'portfolio' => $port, 
		'numberposts' => $count,
		'tax_query' => array(
							array( 
								'taxonomy' => 'portfolio',
								'field'    => 'term_id',
								'terms'    => $id_port,),),
		'meta_key' => 'wsp_weight',
		'orderby' => 'meta_value_num',
		'order' => 'ASC',
				);
		wsp_view ($sites = get_posts ($args), $col);
		}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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