Eu estava procurando uma maneira de exibir uma lista de campos personalizados de todas as postagens em um modelo de página personalizado e eu recebi a solução neste tópico ,.
Como todos os valores de campo personalizados são somente de strings, preciso que a lista seja exibida em ordem alfabética . É possível ? Dado é o código que estou usando atualmente, que me fornece uma lista desordenada agradável, que faz o trabalho. Se isso for possível, sugira a alteração no código.
get_col( $wpdb->prepare( " SELECT pm.meta_value FROM {$wpdb->postmeta} pm LEFT JOIN {$wpdb->posts} p ON p.ID = pm.post_id WHERE pm.meta_key = '%s' AND p.post_status = '%s' AND p.post_type = '%s' ", $key, $status, $type ) ); return $r; } ?> Display a list of custom values :
<?php foreach($my_list_items as $my_list_item) { echo '- ' .$my_list_item. '
'; } ?>
E se você usar ORDER BY pm.meta_value ASC
na class WP db:
$r = $wpdb->get_col( $wpdb->prepare( " SELECT pm.meta_value FROM {$wpdb->postmeta} pm LEFT JOIN {$wpdb->posts} p ON p.ID = pm.post_id WHERE pm.meta_key = '%s' AND p.post_status = '%s' AND p.post_type = '%s' ORDER BY pm.meta_value ASC ", $key, $status, $type ) );
Isso proporcionará uma matriz ordenada ASCending .