Nano Hash - криптовалюты, майнинг, программирование

Wordpress запрашивает порядок сообщений по значению мета-ключа

Я хочу, чтобы все мои сообщения были заказаны с несколькими полями для катомов (Wordpress 3). Пример, у меня есть 2 пользовательских пары meta_key / meta_value:

" order_submenuexpositions / numeric "
" display_submenuexpositions / boolean "

Я пробовал вот так, но результат не упорядочен по мета_значению из мета_ключа "order_submenuexpositions":

SELECT * FROM wp_posts 
LEFT JOIN wp_postmeta wpostmetaOrder ON ( wp_posts.ID = wpostmetaOrder.post_id AND wpostmetaOrder.meta_key = 'order_submenuexpositions' )
LEFT JOIN wp_postmeta ON wp_posts.ID = wp_postmeta.post_id 
LEFT JOIN wp_term_relationships wp_term_relationships ON (wp_posts.ID = wp_term_relationships.object_id)
LEFT JOIN wp_term_taxonomy wp_term_taxonomy ON (wp_term_relationships.term_taxonomy_id = wp_term_taxonomy.term_taxonomy_id)
WHERE wp_postmeta.meta_key = 'display_submenuexpositions'
AND wp_postmeta.meta_value = 'true'
AND wp_posts.post_status = 'publish' 
AND wp_posts.post_type = 'post' 
AND wp_term_taxonomy.taxonomy = 'category'
ORDER BY wpostmetaOrder.meta_value ASC,wp_postmeta.meta_value ASC

как мне это сделать ?

Спасибо !


ОК решено, это потому, что тип поля sql meta_value является длинным текстом, и я пытался заказать целочисленное значение ... это не работает. вам нужно привести тип к целому числу, например:

SELECT * FROM wp_posts 
LEFT JOIN wp_postmeta wpostmetaOrder ON ( wp_posts.ID = wpostmetaOrder.post_id AND wpostmetaOrder.meta_key = 'order_submenuexpositions' )
LEFT JOIN wp_postmeta ON wp_posts.ID = wp_postmeta.post_id 
LEFT JOIN wp_term_relationships wp_term_relationships ON (wp_posts.ID = wp_term_relationships.object_id)
LEFT JOIN wp_term_taxonomy wp_term_taxonomy ON (wp_term_relationships.term_taxonomy_id = wp_term_taxonomy.term_taxonomy_id)
WHERE wp_postmeta.meta_key = 'display_submenuexpositions'
  AND wp_postmeta.meta_value = 'true'
  AND wp_posts.post_status = 'publish' 
  AND wp_posts.post_type = 'post' 
  AND wp_term_taxonomy.taxonomy = 'category'
ORDER BY CAST(wpostmetaOrder.meta_value AS SIGNED) ASC,wp_postmeta.meta_value ASC`
22.03.2011

Ответы:


1

Фактически вы можете сделать это без использования сложного SQL-запроса для использования в будущем.

Вот пример:

$args = array(
'posts_per_page' => 250,
'post_type' => 'books',
'meta_query' => array(

    array(
        'key' => 'author',
        'value' => $author_name,
        'compare' => '=='
    ),

    array(
        'key' => 'publisher_id',
        'value' => $publisher_id,
        'compare' => '!=',
        'type' => 'NUMBER'
    )
)
);

$the_query = new WP_Query( $args );  while ( $the_query->have_posts() ) : $the_query->the_post();

// LOOP GOES HERE

endwhile;

Вы можете добавить дополнительные массивы внутри «Meta_query», чтобы копнуть еще глубже, а также узнать о различных типах опций «сравнить» и «тип», доступных в кодексе wordpress.

http://codex.wordpress.org/Class_Reference/WP_Query#Custom_Field_Parameters

10.02.2012
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

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

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

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

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..