it-swarm.com.de

Verwenden eines Portfolio_Category-Slugs in einer WordPress-URL

Ich werde nicht lügen - ich kenne PHP nicht, aber es macht mir Spaß, nach Wegen zu suchen, um Themen so anzupassen, dass sie sich so verhalten, wie ich sie haben möchte. Jede Hilfe wäre sehr dankbar.

Was ich versuche zu tun:

Ich verwende einen Abschnitt in einem WordPress-Thema, in dem Sie Portfolios veröffentlichen können.

Die URL für jede Portfolio-Seite wäre:

mysite.com/portfolio/example-portfolio

Beim Erstellen eines neuen Portfolios haben Sie die Möglichkeit, eine Portfoliokategorie zuzuweisen, ähnlich wie beim Erstellen eines neuen Posts.

Ich möchte, dass meine Portfolio-URLs so aussehen:

mysite.com/portfolio-category/example-portfolio

Ich habe einen Codebereich markiert, von dem ich vermute, dass er bearbeitet werden kann, aber hier endet mein Abenteuer leider :(

Hier ist der Code:

function mysite_post_types() {
    register_post_type('portfolio', array(
        'labels' => array(
            'name' => _x('Portfolios', 'post type general name', MYSITE_ADMIN_TEXTDOMAIN ),
            'singular_name' => _x('Portfolio', 'post type singular name', MYSITE_ADMIN_TEXTDOMAIN ),
            'add_new' => _x('Add New', 'portfolio', MYSITE_ADMIN_TEXTDOMAIN ),
            'add_new_item' => __('Add New Portfolio', MYSITE_ADMIN_TEXTDOMAIN ),
            'edit_item' => __('Edit Portfolio', MYSITE_ADMIN_TEXTDOMAIN ),
            'new_item' => __('New Portfolio', MYSITE_ADMIN_TEXTDOMAIN ),
            'view_item' => __('View Portfolio', MYSITE_ADMIN_TEXTDOMAIN ),
            'search_items' => __('Search Portfolios', MYSITE_ADMIN_TEXTDOMAIN ),
            'not_found' =>  __('No portfolios found', MYSITE_ADMIN_TEXTDOMAIN ),
            'not_found_in_trash' => __('No portfolios found in Trash', MYSITE_ADMIN_TEXTDOMAIN ), 
            'parent_item_colon' => ''
        ),
        'singular_label' => __('Portfolio', MYSITE_ADMIN_TEXTDOMAIN ),
        'public' => true,
        'exclude_from_search' => false,
        'show_ui' => true,
        'capability_type' => 'post',
        'hierarchical' => true,
        'rewrite' => array( 'with_front' => false, 'slug' => 'products' ),

Ich habe herausgefunden, wie ich 'mysite.com/ portfolio / beispiel-portfolio' in 'mysite.com/ products / beispiel-portfolio' ändern kann (in der letzten Zeile im Beispiel), aber ich ziehe es nicht an will da nicht aufhören!

Da Sie die Portfolios kategorisieren können, möchte ich dies in den generierten URLs nutzen.

Dies ist sicherlich mit nicht allzu viel Arbeit möglich, und ich wäre sehr dankbar, wenn jemand mit mehr PHP-Kenntnissen als ich (was nicht viel kostet!) Mich für eine Lösung auf sie stützen könnte

vielen Dank

1
ste.b

hinzufügen

'rewrite' => array('slug' => 'portfolio-categories'),

aber unbedingt entfernen (nicht sicher, warum das so ist, versucht es, den Slug auszublenden und gleichzeitig in "Produkte" umzubenennen?):

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

So sieht es also aus:

function mysite_post_types() {
register_post_type('portfolio', array(
    'labels' => array(
        'name' => _x('Portfolios', 'post type general name', MYSITE_ADMIN_TEXTDOMAIN ),
        'singular_name' => _x('Portfolio', 'post type singular name', MYSITE_ADMIN_TEXTDOMAIN ),
        'add_new' => _x('Add New', 'portfolio', MYSITE_ADMIN_TEXTDOMAIN ),
        'add_new_item' => __('Add New Portfolio', MYSITE_ADMIN_TEXTDOMAIN ),
        'edit_item' => __('Edit Portfolio', MYSITE_ADMIN_TEXTDOMAIN ),
        'new_item' => __('New Portfolio', MYSITE_ADMIN_TEXTDOMAIN ),
        'view_item' => __('View Portfolio', MYSITE_ADMIN_TEXTDOMAIN ),
        'search_items' => __('Search Portfolios', MYSITE_ADMIN_TEXTDOMAIN ),
        'not_found' =>  __('No portfolios found', MYSITE_ADMIN_TEXTDOMAIN ),
        'not_found_in_trash' => __('No portfolios found in Trash', MYSITE_ADMIN_TEXTDOMAIN ), 
        'parent_item_colon' => ''
    ),
    'singular_label' => __('Portfolio', MYSITE_ADMIN_TEXTDOMAIN ),
    'public' => true,
    'exclude_from_search' => false,
    'show_ui' => true,
    'capability_type' => 'post',
    'hierarchical' => true,
    'rewrite' => array('slug' => 'portfolio-categories')
     )
    );

vergewissern Sie sich nur, dass register_post_type korrekt geschlossen ist. Der von Ihnen eingegebene Code endet in der Mitte des Arrays. Ich habe es für dich geschlossen, aber ich bin mir nicht sicher, ob du etwas ausgelassen hast. Einige Beispiele hier: http://codex.wordpress.org/Function_Reference/register_post_type

3
Josh

Könntest du das nicht einfach mit Permalink machen?

http://codex.wordpress.org/Using_Permalinks

0
Tom Kiddle