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