Ankerlink an den Anfang der Seite
train 828597 1920
Generic filters
Filter by Kategorien

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

Bei nachfolgenden Funktionen die Arrays mit Slugs und Bezeichnungen von Inhaltstypen ausgeben, unterscheiden sich die Argumente je nachdem, ob Seiten (oder Typen die Seiten entsprechen) dabei sein sollen oder nicht.

Öffentlich zugängliche Inhaltstypen inklusive Seiten

/**
 * returns public post types with pages
 */
function flxo_get_public_post_types() {

	$items = array();

	$args = array(
		'public' => true
	);		

	$post_types = get_post_types( $args, 'objects' ); 

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

	return $items;	

} 

Gibt neben nachfolgenden Standard-Inhaltstypen post, page und attachment auch öffentliche benutzerdefinierte Inhaltstypen zurück.

Array
(
    [post] => Beiträge
    [page] => Seiten
    [attachment] => Medien
    [customtype] ) => Custom Type
)

Öffentlich zugängliche Inhaltstypen exklusive Seiten

/**
 * returns public post types with pages
 */
function flxo_get_public_post_types() {

	$items = array();

	$args = array(
	    'public' => true,
            'publicly_queryable' => true
	);		

	$post_types = get_post_types( $args, 'objects' ); 

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

	return $items;	

} 

Gibt neben den Standard-Inhaltstypen post und attachment auch öffentliche Inhaltstypen zurück die den Argumenten entsprechen.

Array
(
    [post] => Beiträge
    [attachment] => Medien
    [customtype] ) => Custom Type
)

Seiten fehlen in der zweiten Funktionen, denn sie sind nicht publicly_queryable. Es gibt keinen Link http://example.com/?post_type=page der ein Archiv mit Seiten ausgibt.

Der auf true gesetzte Parameter publicly_queryable listet bei Eingabe http://example.com/?post_type=customtype unter customtype geschriebene veröffentlichte (daher funktionert es nicht mit Attachments, da deren post_status inherit ist, nicht publish) Beiträge auf.

Durch publicly_queryable entsteht ein Inhaltstyp-Archiv, das allerdings nicht automatisch Rewrite-Regeln aus den Permalinkeinstellungen übernimmt. Dafür muss zusätzlich der Parameter has_archive auf true gesetzt sein. Das generiert (soweit der Rewrite-Slug nicht explizit verändert wurde) automatisch den Link http://example.com/customtype zum Inhaltstyp-Archiv.

Der Standard-Typ post für Beiträge ist publicly_queryable, has_archive trifft aber nicht zu.

Darauf achten, dass es keine Seite gibt, die denselben Slug verwendet wie ein Inhaltstyp der in den Rewrite-Regeln berücksichtigt werden soll. Diesen Link kann es nur ein Mal geben.

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.