Ankerlink an den Anfang der Seite
z03 1344
Foto von Gabriele Lässer

Der Beitrag, geschriebem am 25. Juli 2017, ist schon etwas älter und könnte womöglich nicht mehr aktuell sein

Die Funktion flxo_has_archive ermittelt, ob der abgefragte Inhaltstyp ein Archive hat. Die Abfrage ist auch auf andere boolsche Post Type-Argumente anwendbar.

/**
 * returns true if post_type has archive
 */
function flxo_has_archive( $post_type ) {
	$obj = get_post_type_object( $post_type );	
	return isset( $obj->has_archive ) && $obj->has_archive === 1 ? true : false;
}

Array aller öffentlichen Inhaltstypen ausgeben (inklusive Seiten)

function flxo_get_public_post_types() {
		
    $args = array(
        'public' => true
    );		
	
    $post_types = get_post_types( $args, 'objects' ); 

    foreach ( $post_types as $post_type ) {
	$items[$post_type->name] = $post_type->label;
    }	
	
    return $items;	
	
}

Array aller öffentlichen Inhaltstypen exklusive Seiten

function flxo_get_publicly_queryable_post_types() {
		
    $args = array(
        'public'  => true,
        'publicly_queryable'  => true // like posts but not like pages
    );		
	
    $post_types = get_post_types( $args, 'objects' ); 

    foreach ( $post_types as $post_type ) {
	$items[$post_type->name] = $post_type->label;
    }	
	
    return $items;	
	
}

Post Type Objekt ausgeben

echo '<pre><h3>Post Type Object</h3>';
print_r( get_post_type_object( $post_type ) );
echo '</pre>';

Gibt die Labels und Paramter eines Post Types aus.

Post Type Object
WP_Post_Type Object
(
    [name] => publicwiki
    [label] => Wiki
    [labels] => stdClass Object
        (
            [name] => Wiki
            [singular_name] => Wiki
            [add_new] => Erstellen
            [add_new_item] => Neue Seite erstellen
            [edit_item] => Seite bearbeiten
            [new_item] => Neue Seite
            [view_item] => Seite ansehen
            [view_items] => Seiten ansehen
            [search_items] => Seiten durchsuchen
            [not_found] => Keine Seiten gefunden.
            [not_found_in_trash] => Keine Seiten im Papierkorb gefunden.
            [parent_item_colon] => Übergeordnete Seite:
            [all_items] => Wiki
            [archives] => Wiki
            [attributes] => Seiten-Attribute
            [insert_into_item] => In die Seite einfügen
            [uploaded_to_this_item] => Zu dieser Seite hochgeladen
            [featured_image] => Beitragsbild
            [set_featured_image] => Beitragsbild festlegen
            [remove_featured_image] => Beitragsbild entfernen
            [use_featured_image] => Als Beitragsbild nutzen
            [filter_items_list] => Seitenliste filtern
            [items_list_navigation] => Navigation der Seitenliste
            [items_list] => Seitenliste 
            [menu_name] => Wiki
            [name_admin_bar] => Wiki
        )

    [description] => 
    [public] => 1
    [hierarchical] => 1
    [exclude_from_search] => 
    [publicly_queryable] => 1
    [show_ui] => 1
    [show_in_menu] => 1
    [show_in_nav_menus] => 1
    [show_in_admin_bar] => 1
    [menu_position] => 
    [menu_icon] => 
    [capability_type] => page
    [map_meta_cap] => 1
    [register_meta_box_cb] => 
    [taxonomies] => Array
        (
        )

    [has_archive] => 
    [query_var] => publicwiki
    [can_export] => 1
    [delete_with_user] => 
    [_builtin] => 
    [_edit_link] => post.php?post=%d
    [cap] => stdClass Object
        (
            [edit_post] => edit_page
            [read_post] => read_page
            [delete_post] => delete_page
            [edit_posts] => edit_pages
            [edit_others_posts] => edit_others_pages
            [publish_posts] => publish_pages
            [read_private_posts] => read_private_pages
            [read] => read
            [delete_posts] => delete_pages
            [delete_private_posts] => delete_private_pages
            [delete_published_posts] => delete_published_pages
            [delete_others_posts] => delete_others_pages
            [edit_private_posts] => edit_private_pages
            [edit_published_posts] => edit_published_pages
            [create_posts] => edit_pages
        )

    [rewrite] => Array
        (
            [slug] => wiki
            [with_front] => 
            [pages] => 1
            [feeds] => 
            [ep_mask] => 1
        )

    [show_in_rest] => 
    [rest_base] => 
    [rest_controller_class] => 
)

Parameter eines Post Types ändern

function flxo_custom_post_type_args( $args, $post_type ) {
    if ( $post_type == 'custom-type' ) {
        $args['has_archive'] = true;
        $args['rewrite'] = array(
              'slug' => 'custom-slug'
        );

    }

    return $args;
}
add_filter( 'register_post_type_args',  'flxo_custom_post_type_args', 20, 2 );

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 kann zur Spamprüfung an einen KI-Dienst übermittelt werden. Details: Datenschutzerklärung.