J'ai un problème avec les entrées pour un type d'article personnalisé qui ne sont pas commandées comme prévu dans une requête personnalisée:
<h4>Related projects</h4>
<?php
$rp_args = array(
'post_type' => 'work',
'post_status' => 'publish',
'orderby' => 'title',
'order' => 'ASC',
);
$related_projects = new WP_Query($rp_args);
?>
<ul>
<?php
if($related_projects->have_posts()):
while ($related_projects->have_posts()) : $related_projects->the_post();
?>
<li><a href="<?php the_permalink();?>"><?php the_title();?></a></li>
<?php
endwhile;
endif;
?>
</ul>
Il est supposé simplement extraire un type d'article personnalisé et le commander par son nom - mais l'ordre ne fonctionne pas et je ne sais pas pourquoi.
Il s’agit simplement de répertorier les publications dans leur ordre d’apparition dans WP admin.
Avez-vous une idée de la raison pour laquelle ma commande n’intervient pas? Il trouve le type de message correct et le nombre de messages que je spécifie - la commande ne semble pas fonctionner.
Oui, je suis stupide.
Post-types Le plug-in de commande a une option (définie par défaut) qui remplace tout ordre effectué dans les requêtes. Éteignez cela et le problème disparaît.
dans le fichier category.php utiliser par exemple
sort_query_posts_by('title', 'desc');
ou utilisez ID, date, etc. (voir la fonction ci-dessous) avant la boucle et insérez la fonction ci-dessous
if (! function_exists('sort_query_posts_by'))
{
function sort_query_posts_by($order_by, $order = 'asc')
{
global $wp_query;
$order_by = strtolower($order_by);
$order = strtolower($order);
if ($order_by == 'Rand') {
shuffle($wp_query->posts);
return;
}
if ($order_by == 'none') {
$order_by = 'id';
$order = 'asc';
}
$props = array(
'author' => 'return sqp_compare_by_number($o1->post_author, $o2->post_author, '.$order.');',
'comment_count' => 'return sqp_compare_by_number($o1->comment_count, $o2->comment_count, '.$order.');',
'date' => 'return sqp_compare_by_number(strtotime($o1->post_date), strtotime($o2->post_date), '.$order.');',
'id' => 'return sqp_compare_by_number($o1->ID, $o2->ID, '.$order.');',
'menu_order' => 'return sqp_compare_by_number($o1->menu_order, $o2->menu_order, '.$order.');',
'modified' => 'return sqp_compare_by_number(strtotime($o1->post_modified), strtotime($o2->post_modified), '.$order.');',
'parent' => 'return sqp_compare_by_number($o1->post_parent, $o2->post_parent, '.$order.');',
'title' => 'return sqp_compare_by_string($o1->post_title, $o2->post_title, '.$order.');'
);
usort($wp_query->posts, create_function('$o1, $o2', $props[$order_by]));
}
function sqp_compare_by_number($n1, $n2, $order)
{
$n1 = (int) $n1;
$n2 = (int) $n2;
$v = $n1 > $n2 ? 1 : ($n1 < $n2 ? -1 : 0);
return ($order == 'desc') ? $v * -1 : $v;
}
function sqp_compare_by_string($s1, $s2, $order)
{
$v = strnatcasecmp($s1, $s2);
return ($order == 'desc') ? $v * -1 : $v;
}
}