Le type de publication personnalisé ne fonctionne pas après la commande
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;
}
}