web-dev-qa-db-fra.com

Archive de balises pour les posts de type post personnalisé donnant un résultat 404 lorsque les permaliens sont définis sur postname

J'ai un type de message personnalisé "news_updates" auquel je n'ai pas donné de balises ou de catégories personnalisées. J'ai toutefois créé une balise normale (non attachée à un type d'article personnalisé) et je l'ai affectée à un article particulier de news_updates. La balise apparaît dans la liste des balises lors de la visualisation du message.

Cependant, bien que mes permaliens soient définis sur% postname%, lors de la tentative de recherche de toutes les publications affectées à cette balise, ou de toute autre balise, une erreur 404 est générée. Lorsque je règle les permaliens sur défaut, le problème n'est pas résolu et l'archive de balises renvoie correctement.

Je ne sais pas du tout pourquoi, puisque le nom de la balise n'est même pas très proche de l'un de mes types de publications ou taxonomies personnalisés, j'ai essayé de modifier les paramètres de permaliens dans les deux sens, en rafraîchissant, en flush_rewrite_rules. Rien ne fonctionnait sauf changer les permaliens par défaut.

Voici le code de mon type de message personnalisé. Je n'utilise aucun plugin pour créer mes types de post ou mes taxonomies.

function custom_post_news_updates() { 
// creating (registering) the custom type 
register_post_type( 'news_updates', /* (http://codex.wordpress.org/Function_Reference/register_post_type) */
    // let's now add all the options for this post type
    array('labels' => array(
        'name' => __('News Update Posts', 'jointstheme'), /* This is the Title of the Group */
        'singular_name' => __('News Update', 'jointstheme'), /* This is the individual type */
        'all_items' => __('All News Update Post', 'jointstheme'), /* the all items menu item */
        'add_new' => __('Add New', 'jointstheme'), /* The add new menu item */
        'add_new_item' => __('Add New News Update', 'jointstheme'), /* Add New Display Title */
        'edit' => __( 'Edit', 'jointstheme' ), /* Edit Dialog */
        'edit_item' => __('Edit News Update', 'jointstheme'), /* Edit Display Title */
        'new_item' => __('New News Update', 'jointstheme'), /* New Display Title */
        'view_item' => __('View News Update', 'jointstheme'), /* View Display Title */
        'search_items' => __('Search News Update', 'jointstheme'), /* Search Custom Type Title */ 
        'not_found' =>  __('Nothing found in the Database.', 'jointstheme'), /* This displays if there are no entries yet */
        'not_found_in_trash' => __('Nothing found in Trash', 'jointstheme'), /* This displays if there is nothing in the trash */
        'parent_item_colon' => ''
        ), /* end of arrays */
        'description' => __( 'This is where News and Updates posts go.', 'jointstheme' ), /* Custom Type Description */
        'public' => true,
        'publicly_queryable' => true,
        'exclude_from_search' => false,
        'show_ui' => true,
        'query_var' => true,
        'menu_position' => 4, /* this is what order you want it to appear in on the left hand side menu */ 
        'menu_icon' => get_stylesheet_directory_uri() . '/library/images/custom-post-icon.png', /* the icon for the custom post type menu */
        'rewrite'   => false,//array( 'slug' => 'news-updates', 'with_front' => false ), /* you can specify its url slug */
        'has_archive' => 'news-updates-archive', /* you can rename the slug here */
        'capability_type' => 'post',
        'hierarchical' => false,
        /* the next one is important, it tells what's enabled in the post editor */
        'supports' => array( 'title', 'editor', 'author', 'thumbnail', 'excerpt', 'trackbacks', 'custom-fields', 'comments', 'revisions', /*'sticky'*/)
    ) /* end of options */
); /* end of register post type */

//these both make it so the custom post type can use the global categories and tags
/* this adds your post categories to your custom post type */
register_taxonomy_for_object_type('category', 'news_updates');
/* this adds your post tags to your custom post type */
register_taxonomy_for_object_type('post_tag', 'news_updates');
} 


add_action( 'init', 'custom_post_news_updates');

Toute aide appréciée. J'ai cherché, mais en vain.

1
Josh Burson

Il y avait un flush_rewrite_rules () errant dans mon fichier functions.php, le commentant faisant en sorte que tout fonctionne correctement. À partir de là, je devais simplement inclure les publications du type de publication personnalisée dans la page des archives, à la http://css-tricks.com/snippets/wordpress/make-archives-php-include- custom-post-types/

0
Josh Burson

Essayez de donner un nom à votre réécriture, comme suit:

'rewrite' => array(
    'slug'       => 'news-updates-archive',
    'with_front' => true,
    'feeds'      => false,
    'pages'      => true,
)

Donc, vous éviterez tout problème.

De plus, les dernières fonctions que vous utilisez sont inutiles. Vous pouvez le configurer sur register_post_type:

'taxonomies' => array('post_tag', 'category'),

PS: Essayez de vider votre corbeille également et vérifiez si votre nom de type d'article personnalisé n'est pas dupliqué. Parfois c'est l'erreur.

1
Leo Caseiro