Мне нужно перечислить завершенные (мета_значение) проекты за каждый год (мета_значение), например:
2006
— Проект 1
— Проект 2
…
2005
— Проект 3…
Я нашел ( здесь ) отличный фрагмент кода, с которым мне нужно иметь дело:
<?php // List posts by a Custom Field's values
$meta_key = 'year'; // The meta_key of the Custom Field
$sql = "
SELECT p.*,m.meta_value
FROM $wpdb->posts p
LEFT JOIN $wpdb->postmeta m ON (p.ID = m.post_id)
WHERE p.post_type = 'post'
AND p.post_status = 'project'
AND m.meta_key = '$meta_key'
ORDER BY m.meta_value, p.post_date DESC
";
$rows = $wpdb->get_results($sql);
if ($rows) {
foreach ($rows as $post) {
setup_postdata($post);
if ($post->meta_value != $current_value) {
echo "<h3>$post->meta_value</h3>";
$current_value = $post->meta_value;
}
// Put code here to display the post
the_title();
}
}
?>
Но у меня все еще есть (1) дополнительный запрос на код и (2) проблема с ним, а именно:
-
Мне нужно отфильтровать запрос по другому мета_ключу (состояние ключа: значение завершено).
-
Я использую WPML, и в списке сообщений отображается как сообщение, так и его перевод (он должен получать только сообщения на текущем языке).
Вы должны использовать некоторые из встроенных функций WordPress, есть даже новый мета-параметр сравнения. Вы можете создать, например:
Не могли бы вы немного рассказать о том, как будет проходить условное плевание? Спасибо.
Например, это захватит все ваши сообщения с проектом мета-ключа, затем вы можете написать какой-нибудь php для вывода, что-то вроде —>if the_date= 2006…echo»something»;
В итоге я сделал запрос
meta_query
и повторял его для каждого года. Тем не менее, я все еще надеюсь на динамическое решение.