Фильтр или заказ на основе пользовательского поля

wordpress.stackexchange https://wordpress.stackexchange.com/questions/10329

Вопрос

Я добавил пользовательское поле в некоторые сообщения под названием «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");
Лицензировано под: CC-BY-SA с атрибуция
Не связан с wordpress.stackexchange
scroll top