Wie erstellen Sie% post_type% /% postname% / permalink-Struktur?

Wie erstellen Sie% post_type% /% postname% / permalink-Struktur?

Das funktioniert nicht:

z.B. (domain.com/blog/) -> “Klick auf Post” -> (domain.com/post-name)

Wie mache ich “Blog Post” Permalinks funktionieren so …

z.B. (domain.com/blog/) -> “Klick auf Post” -> (domain.com/blog/postname)


Obwohl andere benutzerdefinierte Beitragstypen funktionieren? …

z.B. (domain.com/portfolio/) -> “Klicken Sie auf Portfolio Stück” -> (domain.com/portfolio/project)

Außerdem, sollte ich die Permalinks refixieren?

Hier ist der Code Code & Taxonomies der Custom Post Typen in meiner functions.php Datei:

// Add Custom Post Type "Portfolio" register_post_type('portfolio', array( 'label' => 'Portfolio', 'description' => '', 'public' => true, 'show_ui' => true, 'show_in_menu' => true, 'capability_type' => 'post', 'hierarchical' => false, 'rewrite' => array('slug' => 'portfolio'), 'query_var' => true, 'supports' => array('title', 'revisions',), 'taxonomies' => array('Portfolio Category',), 'labels' => array ( 'name' => 'Portfolio', 'singular_name' => 'Project', 'menu_name' => 'Portfolio', 'add_new' => 'Add Project', 'add_new_item' => 'Add New Project', 'edit' => 'Edit', 'edit_item' => 'Edit Project', 'new_item' => 'New Project', 'view' => 'View', 'view_item' => 'View Portfolio Piece', 'search_items' => 'Search Portfolio', 'not_found' => 'No Portfolio Pieces Found', 'not_found_in_trash' => 'No Portfolio Pieces found in Trash', 'parent' => 'Parent Project', ),) ); // Add Custom Post Type "Testimonials" register_post_type('testimonials', array( 'label' => 'Testimonials', 'description' => '', 'public' => true,'show_ui' => true, 'show_in_menu' => true, 'capability_type' => 'post', 'hierarchical' => false, 'rewrite' => array('slug' => ''), 'query_var' => true, 'supports' => array('title', 'revisions',), 'labels' => array ( 'name' => 'Testimonials', 'singular_name' => 'Testimonial', 'menu_name' => 'Testimonials', 'add_new' => 'Add New', 'add_new_item' => 'Add New Testimonial', 'edit' => 'Edit', 'edit_item' => 'Edit Testimonial', 'new_item' => 'New Testimonial', 'view' => 'View', 'view_item' => 'View Testimonial', 'search_items' => 'Search Testimonials', 'not_found' => 'No Testimonials Found', 'not_found_in_trash' => 'No Testimonials Found in Trash', 'parent' => 'Parent Testimonial', ),) ); //Add Taxonomy for Portfolio Category add_action( 'init', 'portfolio_create_taxonomies', 0 ); function portfolio_create_taxonomies() { //Porfolio Category $portfolio_labels = array( 'name' => _x( 'Portfolio Category', 'taxonomy general name' ), 'singular_name' => _x( 'Portfolio Category', 'taxonomy singular name' ), 'search_items' => __( 'Search in portfolio category' ), 'all_items' => __( 'All portfolio categories' ), 'most_used_items' => null, 'parent_item' => null, 'parent_item_colon' => null, 'edit_item' => __( 'Edit portfolio category' ), 'update_item' => __( 'Update portfolio category' ), 'add_new_item' => __( 'Add new portfolio category' ), 'new_item_name' => __( 'New portfolio category' ), 'menu_name' => __( 'Portfolio Categories' ), ); register_taxonomy('portfolio-category',array('portfolio'),array( 'hierarchical' => true, 'labels' => $portfolio_labels, 'show_ui' => true, 'query_var' => true, 'rewrite' => array('slug' => 'portfolio-category') )); } 

EDIT: Ich denke, dass dieses Problem wegen einer Vorlage Heirachy Problem auftritt die Blog-Seite verwendet “index.php”, wenn es “template-blog.php” Datei verwenden sollte.

Solutions Collecting From Web of "Wie erstellen Sie% post_type% /% postname% / permalink-Struktur?"

Abgesehen davon, dass die Deaktivierung von “schönen” Permalinks auf der Seite “Einstellungen”> “Permalink” hübsche Permalinks für alle Post-Typen und Taxonomien deaktiviert, wirken sich die Optionen nicht auf benutzerdefinierte Post-Typen oder Taxonomien aus.

Wenn Sie die Permalinks auf blog/%postname% Ihre Beiträge die Struktur: www.yoursite.com/blog/hello-world .

Wenn ein Post-Typ registriert ist (standardmäßig), wird der Permalink auf www.yoursite.com/post-type/newpost (vorausgesetzt, Sie haben hübsche Permalinks aktiviert und der Post-Typ ist post-type ).

Dasselbe gilt für benutzerdefinierte Taxonomien: Eine benutzerdefinierte Taxonomie wird als www.yoursite.com/custom-taxonomy/ und ein benutzerdefinierter Taxonomiebegriff wird als www.yoursite.com/custom-taxonomy/custom-taxonomy-term/ .

Es gibt jedoch ein paar Dinge, die dafür notwendig sind.

In register_posttype () des Post-Typs muss folgendes gesetzt sein:

 'rewrite' => true, 'has_archive' => 'post-type-name', // "post-type-name" is replaced with your post type name 

Rewrite erlaubt WordPress einfach die URL neu zu schreiben. Es ist standardmäßig auf “True” gesetzt. has_archive definiert den Namen der Archiv (Index) -Seite für diesen Post-Typ. Wenn dieser Wert nicht festgelegt ist, hat der Post-Typ keine Indexseite.

Dasselbe gilt für benutzerdefinierte Taxonomien. In register_taxonomie ():

 'rewrite' => array('slug' => 'hierarchical-taxonomy' ), 

Aus dem Codex :

rewrite (boolean oder array) (optional) Setzen Sie den Wert auf false, um das automatische Umschreiben von URLs zu verhindern, das auch als “schöne Permalinks” bezeichnet wird. Übergeben Sie ein $ args-Array, um die Standard-URL-Einstellungen für Permalinks wie unten beschrieben zu überschreiben.

$ args-Array

  • ‘slug’ – Wird als hübscher Permalink-Text verwendet (zB / tag /) – standardmäßig $ taxonomy (taxonomy’s name slug)
  • ‘with_front’ – erlaubt das Voranstellen von Permalinks mit Front-Base – Standard ist ‘hierarchisch’ – true oder false erlauben hierarchisch
  • URLs (implementiert in Version 3.1)

Hinweis: Möglicherweise müssen Sie die Umschreibregeln nach dem Ändern leeren. Sie können dies manuell tun, indem Sie auf die Permalink-Einstellungsseite gehen und die Regeln erneut speichern – Sie müssen sie nicht ändern – oder indem Sie $ wp_rewrite-> flush_rules () aufrufen. Sie sollten die Regeln nur einmal löschen, nachdem die Taxonomie erstellt wurde, nicht jedes Mal, wenn das Plug-in / Thema geladen wird.

Der einfachste Weg ist, sich in wp-admin einzuloggen, zu den Einstellungen zu gehen und auf Permalink-Optionen zu klicken. Von dort aus können Sie die Struktur von Permalinks in einen benutzerdefinierten Stil ändern.

Zum Beispiel ist meine auf diese Weise eingerichtet / blog /% postname% /. Sie können auch mit .htaccess-Code basteln, wenn Sie wollen, aber das wird ein wenig unordentlich.

Die andere Art, wie Sie es tun können, ist eine Art Cheat-Art, aber wenn Sie benutzerdefinierte Seitenvorlagen in .php im Kopf erstellen, benennen Sie Ihren Vorlagennamen, was auch immer Sie wollen, und verknüpfen Sie ihn dann.

 < ?php /** * Template Name: About * Description: A full-width for About */ get_header(); ?> 

Erstellen Sie dann eine neue Seite, wählen Sie die Seitenvorlage aus und stellen Sie sicher, dass der Permalink übereinstimmt. Die meiste Zeit wird das funktionieren. Sie müssen nur beide Enden synchronisiert haben.

Hoffe das hilft.

http://codex.wordpress.org/Post_Types ^ Dies kann Ihnen auch bei Post-Typen helfen.

Sehr einfach, keine Notwendigkeit Hacks. Lassen Sie den Code unverändert und gehen Sie zu Einstellungen – Permalinks. Wählen Sie Benutzerdefinierte Struktur und fügen Sie Folgendes ein: /% category% /% postname% /

und speichern Sie es, und es wird URLs wie POSTYPE / POSTNAME machen

Ich benutze das und es funktioniert.