it-swarm.com.de

Benutzerdefinierte URL-Umschreibung nach Beitragstyp?

Ich richte einen benutzerdefinierten Beitragstyp für meine Portfolio-Projekte ein. Die Haupt-URL dafür befindet sich unter/projects /

Jetzt habe ich auch meinen Blogposts Permalink zu/articles/*/für die Permalink Struktur eingerichtet. Das bedeutet, wenn ich ein Portfolio-Projekt betrachte, ändert sich die URL zu/articles/projects/project-name /

Ich weiß, dass es eine Möglichkeit geben muss, Permalinks NUR für den benutzerdefinierten Beitragstyp meines Projekts umzuschreiben. Aber ich bin mit der Syntax beim Deklarieren des URL-Slugs nicht vertraut - würde mich über jede Hilfe freuen, die ich bekommen kann!

30
Jake

Wenn Sie den benutzerdefinierten Beitragstyp registrieren, müssen Sie angeben, dass der Umschreiberegel nicht die vorhandene URL-Struktur vorangestellt werden soll.

Kurz gesagt bedeutet dies, dass diese Zeile in Ihrem register_post_type-Aufruf:

'rewrite' => array('slug' => 'projects'),

sollte folgendermaßen aussehen:

'rewrite' => array('slug' => 'projects','with_front' => false),

Weitere Informationen finden Sie im Argument rewrite im Codex-Eintrag unter register_post_type .

edit: Stellen Sie einfach sicher, dass Sie nach dem Aktualisieren des Codes die Umschreiberegeln löschen, indem Sie Einstellungen> Permalinks aufrufen. Ansonsten sehen Sie immer noch die alten Links.

37
0x61696f

Ich hatte dieses Problem buchstäblich vor 3 Tagen, dann bin ich über eine Serie bei wp.tutsplus.com gestolpert. Ich habe meinen eigenen Code ausgetauscht, um Ihre Frage besser beantworten zu können, aber so kam es, nachdem ich der Serie gefolgt war. Denken Sie auch daran, dass dies nicht getestet ist.

// sets custom post type
function my_custom_post_type() {
    register_post_type('Projects', array(   
       'label' => 'Projects','description' => '',
       'public' => true,
       'show_ui' => true,
       'show_in_menu' => true,
       'capability_type' => 'post',
       'hierarchical' => false,
       'publicly_queryable' => true,
       'rewrite' => false,
       'query_var' => true,
       'has_archive' => true,
       'supports' => array('title','editor','excerpt','trackbacks','custom-fields','comments','revisions','thumbnail','author','page-attributes'),
       'taxonomies' => array('category','post_tag'),
       // there are a lot more available arguments, but the above is plenty for now
    ));
}

add_action('init', 'my_custom_post_type');

// rewrites custom post type name
global $wp_rewrite;
$projects_structure = '/projects/%year%/%monthnum%/%day%/%projects%/';
$wp_rewrite->add_rewrite_tag("%projects%", '([^/]+)', "project=");
$wp_rewrite->add_permastruct('projects', $projects_structure, false);

Theoretisch könnten Sie in der URL, die in der Variablen $projects_structure gespeichert ist, beliebig austauschen.

Viel Glück und wie immer - kommen Sie wieder und teilen Sie uns mit, wie es funktioniert hat! :)

14
cmegown