/ / get_posts - orderby desc nesprávne poradie - wordpress, wordpress-plugin, wordpress-theming

get_posts - orderby desc špatný poriadok - wordpress, wordpress-plugin, wordpress-theming

V mojom doplnku WordPress dostávam príspevky pomocou nasledujúceho:

$args = array(
"post_type" => "wpplugin_pp_order",
"posts_per_page" => -1,
"order" => "ASC",
"orderby" => "ID"
);

$posts = get_posts($args);

Problém je, že sa výsledok vracia podobne ako v prípade post_id:

3000
3001
3002
3003
2999
2998

Ako môžem zadať výsledok správnym poradím?

odpovede:

0 pre odpoveď č. 1

Našlo sa riešenie tohto problému - (zdá sa, že rovnaký problém majú aj ostatní - Wordpress get_posts prílohy prílohy)

Problém je spôsobený funkciou usort, ktorá rozširuje triedu wp_list_table. Páči sa mi, že väčšina ostatných to získala z nejakého online príkladu (zdá sa, že každý používa rovnaký kód):

function usort_reorder($a,$b) {
$orderby = (!empty($_REQUEST["orderby"])) ? $_REQUEST["orderby"] : "order";
$order = (!empty($_REQUEST["order"])) ? $_REQUEST["order"] : "asc";
$result = strcmp($a[$orderby], $b[$orderby]);
return ($order==="asc") ? $result : -$result;
}

usort($data, "usort_reorder");

Ak chcete problém vyriešiť, jednoducho doň vložte vyhlásenie if:

        if (isset($_REQUEST["orderby"])) {
function usort_reorder($a,$b) {
$orderby = (!empty($_REQUEST["orderby"])) ? $_REQUEST["orderby"] : "order";
$order = (!empty($_REQUEST["order"])) ? $_REQUEST["order"] : "asc";
$result = strcmp($a[$orderby], $b[$orderby]);
return ($order==="asc") ? $result : -$result;
}
usort($data, "usort_reorder");
}

-1 pre odpoveď č. 2
<?php
$args = array(
"post_type" => "wpplugin_pp_order",
"post_status" => "publish",
"posts_per_page" => -1,
"orderby" => "ID",
"order" => "ASC",
);
$query = new WP_Query($args);

if ($query->have_posts()) :
while ($query->have_posts()) : $query->the_post();

// your code

endwhile;
endif;
wp_reset_query();

?>

-1 pre odpoveď č. 3

našiel som tu pre vás niektoré:

https://wordpress.stackexchange.com/questions/109849/order-by-desc-asc-in-custom-wp-query

Stačí zmeniť „ASC“ na „DESC“ a urobiť to znova (:

Dajte mi vedieť, či som aj tak pomohol.