Фильтр или заказ на основе пользовательского поля
-
16-10-2019 - |
Вопрос
Я добавил пользовательское поле в некоторые сообщения под названием «FrontPagerank». План состоит в том, чтобы заказать посты по этому значению, но сначала я просто хочу отфильтровать любой, который не использует первую страницу. Я достиг этого, поместив соответствующие посты в другой массив. Но что делать дальше?
Также попробовал запрос: $ the_query = new wp_query (array ('meta_key' => '0', 'meta_value' => '44'));
while ($the_query->have_posts()) : $query->the_post(); $count++;
Это просто ничего не делает. Этот код трудно отладить!
Решение
Я добавил пользовательское поле в некоторые сообщения под названием «FrontPagerank»
Тогда не должен ссылаться на wp_query args, который тогда, например,.
'meta_key' => 'frontpagerank'
Если я последую, вы хотите проверить на наличие сообщений, в которых есть этот ключ, и вы ожидаете числового значения, поэтому я, естественно, предполагаю, что вам не нужны сообщения с этим ключом (но пустое значение).
$the_query = new WP_Query(array( 'meta_key' => 'frontpagerank', 'meta_value' => '', 'meta_compare' => '!=', 'orderby' => 'meta_value_num' ));
Или, если вы специально хотите проверить посты с этим meta_key, где значение выше, скажем, 0, вы можете сделать ..
$the_query = new WP_Query(array( 'meta_key' => 'frontpagerank', 'meta_value' => '0', 'meta_compare' => '>', 'orderby' => 'meta_value_num' ));
Вы можете прочитать информацию о мета -параметрах здесь.
http://codex.wordpress.org/function_reference/query_posts#custom_field_parameters
Информация о заказе от TO, так как я добавил это в вышеперечисленное в ..;)
http://codex.wordpress.org/function_reference/query_posts#order_.26_orderby_parameters
.. Любые параметры, которые вы видите, перечисленные для Query_posts, можно использовать внутри wp_query
Тогда все, что вам нужно сделать, это зацикливаться на этих данных, как у вас были ранее ..
// Note i made the correction you commented on, yes that's need to match
while( $the_query->have_posts() ) : $the_query->the_post();
// do whatever
endwhile;
Надеюсь, это поможет.
Другие советы
Не пробовал, но, похоже, это должно работать:
$recent = new WP_Query("meta_key=your-custom-field&orderby=meta_value");