OK, es gibt also einige Argumente register_post_type
, die Sie verwenden sollten.
Die entscheidenden Argumente für Sie sind:
public
- Steuert, wie der Typ für Autoren ( show_in_nav_menus
, show_ui
) und Leser ( exclude_from_search
, publicly_queryable
) sichtbar ist . Wenn es falsch ist, dann exclude_from_search
ist es wahr, publicly_queryable
- falsch, show_in_nav_menus
- falsch und show_ui
- falsch. Das CPT wird also vollständig ausgeblendet.
exclude_from_search
- Gibt an, ob Beiträge mit diesem Beitragstyp aus den Front-End-Suchergebnissen ausgeschlossen werden sollen. Standard: Wert des Gegenteils des public
Arguments.
publicly_queryable
- Ob Abfragen im Frontend als Teil von parse_request () ausgeführt werden können. Standard: Wert des public
Arguments. Also müssen wir es wahr machen.
show_ui - Gibt an, ob eine Standard-Benutzeroberfläche zum Verwalten dieses Beitragstyps im Administrator generiert werden soll. Standard: Wert des public
Arguments.
rewrite
- Löst die Behandlung von Umschreibungen für diesen Beitragstyp aus. Um ein erneutes Schreiben zu verhindern, setzen Sie den Wert auf false. Standard: true und verwende $ post_type als Slug. Also müssen wir es falsch setzen.
Unten finden Sie den Code:
$labels = array( /*removed for example*/ );
$args = array(
'labels' => $labels,
'description' => __( 'Description.', 'your-plugin-textdomain' ),
'public' => false,
'show_ui' => true,
'rewrite' => false,
'capability_type' => 'post',
'hierarchical' => false,
/* ... Any other arguments like menu_icon, and so on */
'supports' => array( /* list of supported fields */ )
);
register_post_type( 'customer', $args );
Dieser Generator kann hilfreich sein, wenn Sie nicht alle Argumente lernen möchten:
https://generatewp.com/post-type/
Die Liste aller Argumente finden Sie wie immer im Codex:
https://codex.wordpress.org/Function_Reference/register_post_type
Einer der Parameter für
register_post_type()
istpublicly_queryable
. Setzen Sie dies einfach auf false, um die Erstellung einzelner Seiten zu verhindern. Möglicherweise möchten Sie auch von der Suche usw. ausschließen.https://codex.wordpress.org/Function_Reference/register_post_type
In dem im WP-Codex angegebenen Beispiel sehen Sie, dass dieser Parameter auf eingestellt ist
true
. Abhängig von Ihren genauen Anforderungen können Sie denpublic
Beitragstyp mit den Parametern ausblenden oder die Sichtbarkeitsstufen mit den expliziten Parametern, zpublicly_queryable
. B. pas, steuern .https://codex.wordpress.org/Function_Reference/register_post_type#Example
Beispielcode aus WP Codex
Post Type Archive Es ist wichtig zu beachten, dass durch das Setzen von public_queryable auf false auch die Archivseite dieses Post-Typs ausgeblendet wird. Im obigen Beispielcode für den Beitragstyp
book
wird auch die Archivseite unter https://yourdomain.com/book entfernt.quelle
wird wiederholen, was @ jdm2112 in (hoffentlich) klarerem Englisch und überhaupt keinem Code gesagt hat;)
Grundsätzlich suchen Sie ein privates CPT. Diese Art von CPT ist nützlich, um Daten in der Datenbank auf ähnliche Weise wie Posts zu speichern. Dies bietet Ihnen den Vorteil, dass Sie (optional) immer noch dieselbe Art von Administrationsoberfläche erhalten und dieselben Abfrage-, Meta- und Term-APIs verwenden können.
"Privat" ist eigentlich ein irreführendes Wort, es ist nicht so, dass der Inhalt privat ist, aber dass WordPress nicht versucht, ihn selbst im Frontend zu veröffentlichen. Sie können den Inhalt auf dem Frontend anzeigen, wenn Sie möchten, aber Sie müssen den Code dafür selbst schreiben. In Ihrem speziellen Fall besteht eine vereinfachte Möglichkeit darin, eine Seitenvorlage zu erstellen, in der alle Beiträge in diesem CPT angezeigt werden. Auf diese Weise haben Sie eine flexible Kontrolle über die Adresse der Seite und über die SEO, die Sie möglicherweise darin ausführen möchten.
Denken Sie daran, dass es viele Standardfunktionen gibt, die Sie möglicherweise neu erfinden müssen, und dass es möglicherweise einfacher ist, nur das CPT öffentlich zu machen und auf den einzelnen CPT-Seiten eine Art Handlungsaufforderung "Weitere Clients anzeigen" zu erhalten.
quelle