Ankerlink an den Anfang der Seite
archive 1850170 1920
Generic filters
Filter by Kategorien

Der Beitrag, geschriebem am 24. Juni 2016, ist schon etwas älter und könnte womöglich nicht mehr aktuell sein

Weist man einem Custom Post Type page-attributes zu, kann die Menüreihenfolge in den entsprechenden Feldern editiert, und im Custom Query auch danach sortiert werden.

add_post_type_support( 'my_custom_type', 'page-attributes' )
$args = array( 
    'post_type' => 'my_custom_type',
    'orderby' => 'menu_order',
    'order' => 'ASC', 
);

Wird allerdings nicht auch hierarchical => true festgelegt, greift die Sortierung im Dashboard nicht. Mit dieser Funktion wird die Reihenfolge der menu_order entsprechend angezeigt.

function set_custom_post_types_admin_order($wp_query) {
    if ( is_admin() ) {
        $post_type = $wp_query->query['post_type'];
        if ( $post_type == 'my_custom_posttype') {
            $wp_query->set('orderby', 'menu_order');
            $wp_query->set('order', 'ASC');
        }
    }
}
add_filter( 'pre_get_posts', 'set_custom_post_types_admin_order' );

Um das Sortierkriterium auch auf die Links zum jeweils nächsten und vorherigen Beitrag zu übernehmen, sind nachfolgende Filter anzuwenden:

function pppf_pw_previous_post_where() {
 global $post, $wpdb;
 return $wpdb->prepare( "WHERE p.menu_order < %s AND p.post_type = %s AND p.post_status = 'publish'", $post->menu_order, $post->post_type);
}
function pppf_pw_next_post_where() {
 global $post, $wpdb;
 return $wpdb->prepare( "WHERE p.menu_order > %s AND p.post_type = %s AND p.post_status = 'publish'", $post->menu_order, $post->post_type);
}
function pppf_pw_previous_post_sort() {
 return 'ORDER BY p.menu_order desc LIMIT 1';
}
function pppf_pw_next_post_sort() {
 return 'ORDER BY p.menu_order asc LIMIT 1';
}

function pppf_pw_pagination_menu_order() {
    if ( get_post_type() == 'my_custom_posttype' {
        add_filter( 'get_previous_post_where', 'pppf_pw_previous_post_where' );
        add_filter( 'get_next_post_where', 'pppf_pw_next_post_where');
        add_filter( 'get_previous_post_sort', 'pppf_pw_previous_post_sort' );
        add_filter( 'get_next_post_sort', 'pppf_pw_next_post_sort'); 
    }
}
add_action( 'pre_get_posts', 'pppf_pw_pagination_menu_order' );

Bitte das Kommentarfeld nicht für Supportanfragen nutzen; hier kann kein Support angeboten werden. Die Angabe von Name oder E-Mail-Adresse ist optional, ein Spitzname wäre trotzdem nett.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Hinweis: Name und E-Mail-Adresse (beides optional, da alle Kommentare moderiert werden) werden dauerhaft gespeichert. Über dieses Formular kann jeder Zeit die Löschung persönlicher Daten oder Kommentare angefordert werden; die Anfrage wird nicht veröffentlicht und nach der Bearbeitung gelöscht. IP-Adressen, die mit Kommentaren gespeichert werden, werden nach zwei Monaten automatisch gelöscht.

Ihre Nachricht wird möglicherweise zur Spam-Prüfung an OpenAI (USA) weitergeleitet. Weitere Informationen finden Sie in unserer Datenschutzerklärung.