web-dev-qa-db-fra.com

Modèle pour toutes les catégories d'un type de publication personnalisé?

Bonjour mesdames et messieurs!

J'espère que vous pourrez m'aider avec celui-ci .. si c'est possible. Idéalement, j’ai besoin d’un modèle général pour les catégories d’un type de publication personnalisé.

Type de message personnalisé: Annonces (types-listings) Catégories de l'annonce (listing de chats): Bail (bail) & Vente (vente)

Alors quand je visite http://www.domain.com/listings/cat-listings/lease je reçois un 404 (est-ce que cela signifie que cette page ou parce qu'il me manque un modèle. Je suppose que l'ancien, étant donné que je sais que Wordpress en a un par défaut, est utile), quand j'aimerais avoir une page que je puisse modifier ... Dans cette page, je voulez afficher tous les articles de la catégorie de location et permettre à l'utilisateur de naviguer vers la page de vente similaire avec les articles de vente.

Maintenant, je sais que je pourrais créer une page pour chacun d'eux et leur donner leurs pages de modèles personnalisées, mais le problème que j'ai avec ceci est que si mon client souhaite jamais ajouter une autre catégorie, une page et un modèle de page doivent être créés.

Une autre solution consiste à avoir un système de bascule/onglet dans lequel je crée simplement une page de liste et un bascule/onglet entre les catégories. Le problème est que je ne sais pas combien d’annonces il y aura et que la pagination devrait donc fonctionner. Je ne pense pas que je pourrais avoir une bascule/onglet et une pagination.

Merci de votre aide!

J'ai essayé ce qui suit et je n'ai pas eu de chance. cat-listings.php type-listings.php archive-type-listings.php archive-type-listings-cat-listings.php category.php category-type-listings.php category-cat-listings.php catégorie-type-listings -cat-listings.php taxonomie-type-listings.php taxonomie-cat-listings.php taxonomie-type-listings-cat-listings.php

J'ai trouvé ce billet qui ressemble à ce dont j'ai besoin, mais comme vous pouvez le voir dans la liste ci-dessus, je l'ai essayé sans succès. Même modèle pour tous les termes d'une taxonomie

Voici comment enregistrer mon type de message personnalisé:

    register_post_type('type-listings', array(
    'labels' => array(
    'name' => _x('Our Listings', 'Titles', theme_domain()),
    'singular_name' => _x('Listing', 'Titles', theme_domain()),
    'menu_name' => _x('Our Listings', 'Titles', theme_domain()),
    ),
    'public' => false,
    'publicly_queryable' => true,
    'show_ui' => true,
    'show_in_menu' => true,
    'query_var' => true,
    'rewrite' => array('slug' => _x('listings', 'URL Slug', theme_domain()), 'with_front' => false, 'page' => false),
    'capability_type' => 'page',
    'has_archive' => true,
    'hierarchical' => false,
    'menu_position' => 21,
    'menu_icon' => 'dashicons-admin-home',
    'supports' => array('title', 'custom-fields', 'revisions'),
    ));
    $catProjectsArgs = array(
    'label' => __('Availability', theme_domain()),
    'sort' => true,
    'show_ui' => true,
    'show_admin_column' => true,
    'hierarchical' => true,
    'update_count_callback' => '_update_post_term_count',
    'query_var' => true,
    'args' => array('orderby' => 'term_order'),
    );
    register_taxonomy('cat-listings', array('type-listings'), $catProjectsArgs);
1
robinwkurtz

Le nom que vous utilisez pour taxonomy n'est pas autorisé. register_post_type () Le paramètre $taxonomy dit

$ taxonomie

(chaîne) (obligatoire) Nom de la taxonomie. Le nom ne doit contenir que des lettres minuscules et le caractère de soulignement , sans dépasser 32 caractères (restriction de la structure de la base de données).

Par défaut: aucun

Donc, vous devez changer le nom cat-listings en quelque chose d'autre (je supposerai cat_listings pour le reste de la réponse)

Voyons maintenant vos questions une par une.

  1. Donc quand je visite http://www.domain.com/listings/cat_listings/lease je reçois un 404 (est-ce que cela signifie que cette page n'est pas possible? Ou parce que je suis manque un modèle.

Il est possible d'avoir une structure Permalink comme ça. Si vous créez un terme nommé lease sous taxonomy cat_listings, la structure d'URL par défaut sera

http://www.domain.com/cat_listings/lease

Si vous souhaitez ajouter un segment nommé listings avant cela, vous devez passer des arguments rewrite comme celui-ci.

$catProjectsArgs = array(
    'label' => __('Availability', theme_domain()),
    'sort' => true,
    'show_ui' => true,
    'show_admin_column' => true,
    'hierarchical' => true,
    'update_count_callback' => '_update_post_term_count',
    'query_var' => true,
    'rewrite' => array( 'slug' => 'listings' )
);

En passant, il n'y a pas de paramètre nommé args, je l'ai supprimé.

  1. Maintenant, je sais que je pourrais créer une page pour chacun d'eux et leur donner leurs pages de modèles personnalisées, mais le problème que j'ai avec ceci est que si mon client souhaite jamais ajouter une autre catégorie, une page et un modèle de page doivent être créés.

Le fichier de gabarit que vous devez utiliser doit être clairement défini si vous regardez l'image de hiérarchie de gabarit . Voici une version recadrée juste pour la taxonomie personnalisée

template hierarchy for custom taxonomy

Si vous souhaitez appliquer un seul modèle pour tous les terms sous cat_listings, créez simplement le fichier de modèle taxonomy-cat_listings.php. Si vous souhaitez créer un fichier de modèle séparé pour l'une des terms que vous ajoutez plus tard, par exemple, lease, vous devez créer le fichier de modèle taxonomy-cat_listings-lease.php et ainsi de suite.

0
sakibmoon