Abfrage des privaten benutzerdefinierten Beitragstyps

Mein benutzerdefinierter Post-Typ wird mit “public” als false registriert und ich frage mit einem WP_Query () Objekt. arg ‘post_type’ wird ebenfalls auf “privat” gesetzt. Die URL lautet site.com/?post_type=my_post_type

Ich habe versucht, das Attribut ‘exclude_from_search’ bei der Registrierung auf ‘false’ zu setzen, aber das hat mir die Beiträge nicht zurückgebracht. Aus den Dokumenten scheint die obige URL-Abfrage betroffen zu sein. Meine Seite ist die single-my_custom_post_type.php im Theme-Ordner.

Ich vermute, dass ich eine Seite mit einer benutzerdefinierten Seitenvorlage erstellen muss, um eine URL zu erhalten, die nicht von der Front-End-Suche oder dem öffentlichen Abfrageattribut betroffen ist.

Die Frage ist wirklich, gibt es sowieso, um die Standard-URL zu halten? Post_type = … und immer noch in der Lage, den privaten Beitragstyp abzufragen. Vielen Dank.

Antwort: Hier sind die Attribute, die ich benutzt habe:

'public' => false, 'publicly_queryable' => true, 'exclude_from_search' => true, 

Da ich die Standard-URL mit dem Abfragetyp post_type beibehalten möchte, muss das Attribut public_queryable true sein. Um anderen nicht zu zeigen, müsste ich mit Conditionals überprüfen, ob die Seite dem aktuellen Benutzer angezeigt werden soll.

Solutions Collecting From Web of "Abfrage des privaten benutzerdefinierten Beitragstyps"

Wenn Sie den CPT auf “privat” setzen, bedeutet dies für WordPress, dass die dynamische Seite für diesen Post-Typ nicht erstellt wird. Dies beinhaltet die Verwendung der Single-CPT.php-Datei.

Wenn Sie die Seiten “? Post_type =” verwenden möchten, müssen Sie cpt auf “public_queryable = true” oder “public = true” (einschließlich “public_queryable”) festlegen.

Warum willst du es privat (aka public = false)?

Wenn Sie nur die Posts auf der Rückseite haben wollen, tun Sie Folgendes:

 publicly_queryable=false; //disables creation of single pages. has_archive=false; //disables creation of archive page. public=true; //if this is set to false it will hide them in the backed too. 

Wenn Sie es auf diese Weise beibehalten und die Posts am Frontend anzeigen möchten, sind sie dennoch mit einer wp_query verfügbar. Ich mache diese Fälle, wo ich nicht möchte, dass Leute eine einzige Version meiner CPTs sehen können oder wenn ich nie die Absicht habe, ALLE meine Posts gleichzeitig zu ziehen. Das ist auch toll, weil sie nicht von Google oder anderen Indexierungsmaschinen aufgenommen werden.