web-dev-qa-db-fra.com

requête type de message personnalisé privé

Mon type de message personnalisé est enregistré avec 'public' comme étant faux et j'interroge avec un objet WP_Query (). Le 'post_type' de arg est aussi privé. L'URL est site.com/?post_type=my_post_type

J'ai essayé de définir l'attribut 'exclude_from_search' sur false lors de l'enregistrement du fichier, mais cela ne m'a pas permis de récupérer les publications. D'après les documents, il semble que la requête URL ci-dessus sera affectée. Ma page est le single-my_custom_post_type.php dans le dossier du thème.

Je suppose que je vais devoir créer une page avec un modèle de page personnalisé afin d'avoir une URL qui ne soit pas affectée par la recherche frontale ou l'attribut public interrogeable.

La question est vraiment de savoir s'il faut conserver l'URL par défaut? Post_type = ... et pouvoir toujours interroger le type de message privé. Merci.

Réponse: Voici les attributs que j'ai utilisés:

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

Étant donné que je veux conserver l'URL par défaut avec le paramètre de requête post_type, l'attribut publiquement_queryable doit être vrai. Pour ne pas montrer aux autres, je devrais faire des conditions pour vérifier si la page doit être affichée à l'utilisateur actuel.

1
TurtleTread

Si vous définissez le CPT sur privé, cela signifie que wordpress ne doit pas créer la page dynamique pour ce type de publication. Cela inclut l’utilisation du fichier single-CPT.php.

Si vous souhaitez avoir des pages "? Post_type =", vous devez définir le cpt sur publiquement_queryable = true ou public = true (ce qui inclut publiquement_queryable).

Pourquoi voulez-vous qu'il soit privé (aka public = false)?

Si vous souhaitez simplement que les articles à l'arrière-plan fassent ceci:

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.

Si vous le gardez ainsi et voudriez afficher les posts sur le front-end, ils seront toujours disponibles en utilisant un wp_query. Je fais ce cas où je ne veux pas que les gens puissent voir une seule version de mes CPT ou si je n'ai jamais l'intention de tirer TOUS mes messages en même temps. C’est également formidable, car ils ne seront pas récupérés par Google ou d’autres machines d’indexation.

1
rudtek