Как я могу изменить порядок отображаемых сообщений в соответствии с meta_value и названием? - PullRequest
0 голосов
/ 04 февраля 2011

мой сайт о поэзии.

Я использую настраиваемое поле для каждого стихотворения, где мета-ключ - «Автор», а мета-значение - имя автора, например, «Эллисон, Джеймс».

Теперь я хотел бы, чтобы мои сообщения отображались в цикле в определенном порядке: в алфавитном порядке в соответствии с мета-значением, упомянутым выше (например, все стихи "Эллисон, Джеймс"; затем все стихи "Барнс, Джон"). тогда все стихи "Картер, Сью" и тд).

Затем стихи одного конкретного автора (= метазначение) должны быть упорядочены в алфавитном порядке по названию (например, Аллисон, Джеймс: «После наступления темноты», «Перед закатом» и т. Д.). Есть ли способ сделать это? Я нашел приведенную ниже строку, но она не сработает (возможно, я поставил ее не в том месте, или мне нужно добавить какой-то другой код, чтобы заставить ее работать).

Есть ли у вас представление, какой фрагмент кода я должен поместить в какой php-файл, чтобы получить желаемый эффект?

<?php
 $querystr = "
    SELECT wposts.* 
    FROM $wpdb->posts wposts, $wpdb->postmeta wpostmeta
    WHERE wposts.ID = wpostmeta.post_id 
    AND wpostmeta.meta_key = 'Autor' 
    AND wposts.post_type = 'post' 
    ORDER BY wpostmeta.meta_value ASC
 ";

 $pageposts = $wpdb->get_results($querystr, OBJECT);

 ?>


Большое спасибо! Ура, Феликс

Ответы [ 2 ]

0 голосов
/ 08 февраля 2011

Я наконец нашел решение: o) Используя плагин Ambrosite, я добавил следующие фрагменты кода в мой файл single.php:

<?php
    previous_post_link_plus( array(
       'loop' => true,
       'link' => '«',
       'format' => '%link',
       'order_by' => 'custom',
       'order_2nd' => 'post_title',
       'meta_key' => 'Autor',
       'order'=>'ASC',
       'in_same_cat' => true
    ) );
?>

и

<?php
    next_post_link_plus( array(
        'loop' => true,
        'link' => '»',
        'format' => '%link',
        'order_by' => 'custom',
        'order_2nd' => 'post_title',
        'meta_key' => 'Autor',
        'order'=>'ASC',
        'in_same_cat' => true
    ) );
?>

Отлично работает! В любом случае спасибо, Феликс

0 голосов
/ 06 февраля 2011

А как насчет:

ВЫБЕРИТЕ DISTINCT $ wpdb-> posts. *, Meta_value КАК ИЗ АВТОРА ИЗ $ wpdb-> posts LEFT JOIN $ wpdb-> postmeta ON $ wpdb-> postmeta.post_id = $ wpdb-> posts.ID WHERE 1 = 1 AND post_status = 'publish' AND post_type = 'post' AND meta_key = 'Autor' ND post_password = '' ЗАКАЗАТЬ автора DESC;

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...