web-dev-qa-db-fra.com

Catégories attribuées à un type de publication personnalisé non trouvées

Voici mon problème:

J'ai attribué un type de message personnalisé à certaines catégories. Lorsque je recherche ces catégories, soit en effectuant une recherche, soit en entrant directement l’URL. Cependant, si j'attribue un type de message normal à une catégorie, il devient interrogeable et peut être entré directement par l'URL. Je pensais que tout était dans mon code de type de message personnalisé, mais je dois avoir oublié quelque chose. Toute aide serait appréciée:

add_action('init', 'create_trainingplan_post_type');

function create_trainingplan_post_type() {
register_post_type('trainingplan', array(
    'labels' => array(
        'name' => 'Training Plans',
        'singular_name' => 'Training Plan',
        'add_new' => 'Add New Training Plan',
    'add_new_item' => 'Add New Training Plan',
    'edit' => 'Edit Training Plans',
        'edit_item' => 'Edit Training Plan',
        'new_item' => 'New Training Plan',
        'view_item' => 'View Training Plans',
        'search_items' => 'Search Training Plans',
        'not_found' => 'No Training Plans found',
        'not_found_in_trash' => 'No Training Plans found in Trash'
    ),
    'public' => true,
'exclude_from_search'=> false,
'rewrite' => array('slug' => 'my-custom-training-plan', 'with_front' => true),
'supports' => array(
    'title',
    'excerpt',
    'editor',
    'custom-fields',
    'revisions',
    'thumbnail',
    'author',
    'page-attributes'

    ),
    'taxonomies' => array('category', 'post_tag') // this is IMPORTANT
));
flush_rewrite_rules();
}

Merci pour l'aide apportée jusqu'ici, j'ai ajouté des commentaires à la réponse que j'ai reçue jusqu'à présent pour que ce soit plus clair dans ma question:

@ יית אתרים Je peux réellement rechercher le type de message personnalisé et le trouver. Il est impossible de rechercher ou de trouver les catégories attribuées uniquement à des types de publication personnalisés. En gros, j'essaie de permettre à un utilisateur de rechercher par catégorie, mais les catégories attribuées uniquement à un type de publication personnalisé n'apparaissent pas. D'ailleurs, même si je tape l'URL directe de la catégorie, cela m'amène à une page d'erreur: "Désolé, nous ne trouvons pas la catégorie que vous recherchez à cette URL. Essayez de sélectionner un élément de menu à partir de ci-dessus ou sur le côté de ce message pour arriver là où vous ... "

@ יית אתרים J'ai attribué les catégories au type de message personnalisé, comme vous le feriez pour un message normal. Tout en écrivant le post, j'ai coché les catégories que je voulais inclure. Lorsque vous vous trouvez dans le tableau de bord des publications, il confirme que les catégories sont attribuées au cpt. Cependant, lorsque je vais à l'URL de la catégorie ou que je cherche des publications dans cette catégorie, cpt ne s'affiche pas.

Merci encore

2
Jeff

la fonction de recherche par défaut ne cherchera que les articles et les pages; vous devez donc ajouter votre type de post_type à la recherche. Vous pouvez le faire de deux manières.

en utilisant le filtre 'pre_get_posts' pour ajouter votre type d'article avant la requête, comme ceci:

function Search_CPT_Filter($query) {
    $post_type = $_GET['type'];
    if (!$post_type) {
        $post_type = array('post','post type name');
    }
    if ($query->is_search) {
        $query->set('post_type', $post_type);
    };
    return $query;
};

add_filter('pre_get_posts','Search_CPT_Filter');

ou, en ajoutant le type de message au formulaire de recherche dans un fichier caché comme ceci:

<input type="hidden" name="post_type" value="post type name" /> 

et dans les deux cas, remplacez simplement "nom du type de message" par le nom de votre type de message.

1
Bainternet