Три человека уже попытались решить это, и мы подходим ноль. Я хочу показать только сообщения, которые имеют значение в meta_key 'featured_image'.
Так..., если 'featured_image' не пуст, покажите сообщение. Вот код:
<ul>
<?php
$args = array(
'showposts' => 5,
'meta_query' => array(
array(
'key' => 'featured_image',
'value' => '',
'compare' => '!='
)
)
);
$ft_pagination = new WP_Query( $args );
?>
<?php while ($ft_pagination->have_posts()) : $ft_pagination->the_post(); ?>
<?php $ftimage = get_post_meta(get_the_id(), 'featured_image', TRUE); ?>
<li>
<article>
<a href="">
<?php if ($ftimage): ?>
<img src="<?php bloginfo('template_directory'); ?>/timthumb.php?src=<?php echo $ftimage; ?>&w=84&h=60" alt="" />
<?php else: ?>
<img src="<?php bloginfo('template_directory'); ?>/timthumb.php?src=/wp-content/themes/ssv/images/review-default.gif&w=84&h=60" alt="" />
<?php endif; ?>
</a>
</article>
</li>
<?php
endwhile;
wp_reset_query();
?>
</ul>
Мы попробовали буквально каждую комбинацию, о которой мы можем думать, meta_* опции устаревшие, query_posts, get_posts, вместо WP_Query... Ничего. Распечатанный избранный оператор, никакое поле значения meta не показывает. Это существует - для сообщений (для каждого сообщения), и это существует в дб.
Мы видели каждое сообщение там по теме прямо сейчас, включая их:
query_posts и только показывают результаты, если пользовательское поле не пусто
http://scribu.net/wordpress/advanced-metadata-queries.html
Ничто. Помогите...
Привет @Rob:
Причина, которую Вы не можете выяснить, как сделать это, состоит в том, потому что это не возможно, по крайней мере, не обращаясь к SQL. Попытайтесь добавить следующее к своей теме functions.php
файл:
add_filter('posts_where','yoursite_posts_where',10,2);
function yoursite_posts_where($where,$query) {
global $wpdb;
$new_where = " TRIM(IFNULL({$wpdb->postmeta}.meta_value,''))<>'' ";
if (empty($where))
$where = $new_where;
else
$where = "{$where} AND {$new_where}";
return $where;
}
Если Вы имеете пользовательский 'featured_image'
поля с пустым вышеупомянутым значений будут фильтровать их. Если Вы, проблема - что-то еще, мы должны будем видеть то, на что Ваши данные похожи для решения ее.
Одна вещь мне любопытно на предмет; как Вы получали пустые значения для 'featured_image'
? Администратор UI в WordPress 3.1 прилагает все усилия, чтобы помешать Вам вводить пустые значения.Надеюсь, это поможет.
Это, кажется, работает на получение значения в запрос, не уверенный в том, вытягивает ли это допустимые результаты хотя..
'meta_query' => array(
array(
'key' => 'some_key',
'value' => array(''),
'compare' => 'NOT IN'
)
)
Не имел время для создания полей для тестирования результатов, но я наблюдал запросы, с которыми я работал сегодня и заметил NOT IN
счастливо возьмет пустой массив.
'compare' => 'NOT LIKE'
вместо 'NOT IN
'
– handsofaten
11.07.2012, 20:10
'value' => '', 'compare' => '!='
– Martijn van Hoof
20.04.2018, 11:32
'value' => array('', array(), serialize(array())), 'compare' => 'NOT IN'
– StephanieQ
14.08.2018, 19:39
Я пропускаю что-то?
<?php
$args = array(
'post_type' => 'post',
'posts_per_page' => -1,
'meta_key' => "featured_image"
);
$the_query = new WP_Query( $args );
?>
Разве это не сделает этого?
$query = new WP_Query( 'meta_key=featured_image' );
послушайте: codex.wordpress.org/Class_Reference / …
– Infinity Media
24.01.2014, 23:50
featured_image
пользовательское поле и Ваш запрос хорошо работают. Что Вы находите? Есть ли шанс, Ваш запрос загружает сообщения, которые действительно имеют afeatured_image
пользовательское поле, но где значение для того поля пусто? – MikeSchinkel 02.03.2011, 08:45