it-swarm.com.de

Tag-Archiv für Posts mit benutzerdefiniertem Post-Typ, die 404 ergeben, wenn für Permalinks der Postname festgelegt ist

Ich habe einen benutzerdefinierten Beitragstyp "news_updates", dem ich keine benutzerdefinierten Tags oder Kategorien zugewiesen habe. Ich habe jedoch ein normales Tag erstellt (nicht an einen benutzerdefinierten Beitragstyp angehängt) und es einem bestimmten news_updates-Einzelbeitrag zugewiesen. Das Tag wird in der Tag-Liste angezeigt, wenn der Beitrag angezeigt wird.

Wenn ich jedoch Permalinks auf% postname% gesetzt habe, wird beim Versuch, alle Beiträge zu finden, denen dieses Tag oder ein beliebiges Tag zugewiesen ist, ein 404-Fehler ausgegeben. Wenn ich die Standardeinstellung für Permalinks festgelegt habe, ist dies kein Problem, und das Tag-Archiv wird ordnungsgemäß zurückgegeben.

Ich habe keine Ahnung, warum dies so ist, da der Name des Tags nicht einmal annähernd mit einem meiner benutzerdefinierten Beitragstypen oder Taxonomien übereinstimmt. Ich habe versucht, die Einstellungen für Permalinks hin und her zu ändern und dabei die Werte für flush_rewrite_rules zu aktualisieren. Es hat nichts geklappt, außer die Permalinks auf die Standardeinstellungen zurückzusetzen.

Hier ist der Code für meinen benutzerdefinierten Beitragstyp. Ich verwende keine Plugins, um meine Beitragstypen oder Taxonomien zu erstellen.

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');

Jede Hilfe dankbar. Ich habe gesucht, aber ohne Erfolg.

1
Josh Burson

In meiner functions.php gab es ein streunendes flush_rewrite_rules (), das auskommentierte, dass alles richtig funktionierte. Von da an musste ich nur die Posts des benutzerdefinierten Post-Typs in die Archivseite aufnehmen, a la http://css-tricks.com/snippets/wordpress/make-archives-php-include- custom-post-types/

0
Josh Burson

Versuchen Sie, einen Namen für Ihr Umschreiben zu vergeben:

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

So vermeiden Sie Probleme.

Außerdem sind die zuletzt verwendeten Funktionen nicht erforderlich. Sie können es auf register_post_type einrichten:

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

PS: Leeren Sie auch Ihren Papierkorb und überprüfen Sie, ob der Name Ihres benutzerdefinierten Beitragstyps nicht doppelt vorhanden ist. Manchmal ist das der Fehler.

1
Leo Caseiro