Сортировка по пользовательскому значению поля

У меня есть страница, где я хочу показывать сообщения только из определенной категории. В то же время, я хочу, чтобы сообщения сортировались по настраиваемому значению поля в моих сообщениях:

query_posts('category_name=' . str_replace(" ", "", $store_name) . '&meta_key=wpfp_favorites&orderby=meta_value_num'); 

Однако сортировка не работает. Посты не сортируются по настраиваемому значению поля. Любые идеи почему? Что мне нужно, чтобы заставить его работать?

Добавлено: В аналогичном случае он работает отлично:

 query_posts('tag=' . $pagetitle . '&meta_key=wpfp_favorites&orderby=meta_value_num'); 

Solutions Collecting From Web of "Сортировка по пользовательскому значению поля"

Вы пробовали жестко кодировать параметр категории для тестирования и дополнительно пытались использовать разные методы для задания параметров запроса.

Например.

 query_posts( array( 'category_name' => 'myname', 'meta_ke' => 'wpfp_favorites', 'orderby' => 'meta_value_num' ) ); query_posts( array( 'cat' => N, 'meta_key' => 'wpfp_favorites', 'orderby' => 'meta_value_num' ) ); query_posts( array( 'cat__in' => array( N ), 'meta_key' => 'wpfp_favorites', 'orderby' => 'meta_value_num' ) ); 

Где N будет числовым идентификационным номером для категории.

Логически класс запроса должен принимать как категорию, так и мета-ключ, будучи в состоянии заказать мета-ключ, я не вижу никакой условной логики, которая бы мешала этим двум параметрам работать друг с другом.

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

 query_posts( array( 'cat' => N, 'meta_key' => 'wpfp_favorites', 'meta_value' => '', 'meta_compare' => '!=', 'orderby' => 'meta_value_num' ) ); 

RE: Получить идентификатор категории …. get_cat_ID ('nameofcat') или, альтернативно, заглянуть на URL-адрес редактирования для категории в области администрирования, в которой должен быть ID категории.

🙂

Дамп генерирует запрос SQL. Посмотрите, все ли в порядке, попробуйте запустить его непосредственно в базе данных.

 add_filter( 'posts_request', 'dump_request' ); function dump_request( $input ) { var_dump($input); return $input; }