WordPress dazu bringen, Kategorie-Permalinks nur für bestimmte Kategorien automatisch anzuzeigen

Lesezeit: 4 Minuten

WordPress dazu bringen Kategorie Permalinks nur fur bestimmte Kategorien automatisch anzuzeigen
Brandon

Ich habe gesucht, hier ist das Ergebnis.

Ich baue eine neue WordPress-Site. Ich möchte, dass die meisten Posts keine Kategorie in der URL haben, sondern einfach www.site.com/title. Ich möchte jedoch, dass die Blog-Posts getrennt sind, also möchte ich www.site.com/blog/title. Ich hätte auch gerne die Option, in Zukunft weitere solcher Elemente hinzuzufügen, nur für bestimmte Kategorien, nicht für die gesamte Website.

Es gibt viele ähnliche Fragen hier auf Stackoverflow, aber die meisten haben 0 Antworten. Jeder Rat wäre toll. Ich habe es sogar versucht Erweiterte Permalinks ohne Glück.

1647101947 455 WordPress dazu bringen Kategorie Permalinks nur fur bestimmte Kategorien automatisch anzuzeigen
AriePutranto

Sie können das einfach über Einstellung > Permalinks tun und den Wert zu Allgemeine Einstellung > Benutzerdefinierte Struktur hinzufügen /blog/%postname%/. Dort erhalten Sie den Blog-Beitrag, der über www.site.com/blog/title zugänglich ist.

Die erste Frage kann ich nicht nachvollziehen. Durch:

Ich möchte, dass die meisten Beiträge keine Kategorie in der URL haben

meinen Sie, www.site.com/category/category-name NICHT ZU HABEN? oder kein www.site.com/category/post?

BEARBEITEN #1

Um dies zu beantworten:

www.site.com/category/post ist das, was ich NUR für Blog-Posts mit der Kategorie „Blog“ möchte > wenn die Kategorie „Schuhe“ ist, möchte ich nicht, dass die Kategorie in der URL angezeigt wird. –

Erstens: Sie können den Permalink setzen /%postname%/ Daher haben alle Ihre Beiträge eine Website / einen Titel, der daher über diesen Link zugänglich ist

Zweitens: Sie müssen den Permalink so filtern, dass er sich für die Beiträge in der Kategorie „Blog“ anders verhält.

Versuche dies

add_filter( 'post_link', 'custom_permalink', 10, 2 );
function custom_permalink( $permalink, $post ) {
    // Get the categories for the post
    $categories = wp_get_post_categories( $post->ID );
    foreach ( $categories as $cat ) {
        $post_cat    = get_category( $cat );
        $post_cats[] = $post_cat->slug;
    }

    // Check if the post have 'blog' category
    // Assuming that your 'Blog' category slug is 'blog'
    // Change 'blog' to match yours
    if ( in_array( 'blog',$post_cats ) ) {
        $permalink = trailingslashit( home_url( 'blog/' . $post->post_name ) );
    }

    return $permalink;
}

Drittens: Sie müssen rewrite_rules filtern

add_filter( 'rewrite_rules_array', 'custom_rewrite_rule' );
function custom_rewrite_rule( $rules ) {
    $new_rules = array(
        'blog/([^/]+)/trackback/?$' => 'index.php?name=$matches[1]&tb=1',
        'blog/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?name=$matches[1]&feed=$matches[2]',
        'blog/([^/]+)/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?name=$matches[1]&feed=$matches[2]',
        'blog/([^/]+)/comment-page-([0-9]{1,})/?$' => 'index.php?name=$matches[1]&cpage=$matches[2]',
        'blog/([^/]+)(/[0-9]+)?/?$' => 'index.php?name=$matches[1]&page=$matches[2]'
    );

    $rules = $new_rules + $rules;

    return $rules;
}

Gehen Sie zur Permalink-Einstellung und speichern Sie die Einstellung, um Ihre Umschreibungsregeln zu aktualisieren und die obigen Änderungen zu aktivieren

HINWEIS: Fügen Sie diese Funktionen zu Ihrem aktiven Design hinzu functions.php Vorlage

HINWEIS: Ich habe es noch nicht getestet, aber so ändert man den Permalink. Ich habe auf ähnliche Weise meinen Permalink in Archiven und Suchergebnissen geändert.

  • www.site.com/category/post ist das, was ich NUR für Blog-Posts mit der Kategorie „Blog“ möchte, wenn die Kategorie „Schuhe“ ist. Ich möchte nicht, dass die Kategorie in der URL angezeigt wird.

    – Brandon

    15. Juni 2012 um 16:46 Uhr

  • Ich habe es nicht vergessen, ich werde es bald versuchen und mich bei Ihnen melden. Ich bin mitten im Umzug, daher ist es im Moment etwas hektisch. Vielen Dank, dass Sie sich die Zeit für eine Antwort genommen haben. Ich werde mich höflich erwidern und Ihren Code ausprobieren.

    – Brandon

    19. Juni 2012 um 22:25 Uhr

  • Das hat bei einer Kategorie super funktioniert, aber als ich versuchte, eine weitere Regel hinzuzufügen, ging es schief … aber nur für die zweite. Irgendwelche Ideen? Die beiden Regeln sind identisch (abgesehen davon, dass sie natürlich für unterschiedliche Kategorien gelten). Muss ich für jede Regel einen separaten Filter hinzufügen oder kann ich zwei Filter mit mehreren Kategorien darin behalten?

    – Kristina Kinder

    7. November 2012 um 22:54 Uhr


  • Macht nichts, ich musste nur die Permalinks recyceln. Speichern Sie eine neue Struktur und speichern Sie sie erneut. Danke dafür, funktioniert super!

    – Kristina Kinder

    8. November 2012 um 0:41 Uhr

  • Besteht die Möglichkeit, dass Sie daran interessiert sind, daraus ein Plugin zu machen?

    Benutzer241244

    18. Juli 2013 um 5:09 Uhr

994330cookie-checkWordPress dazu bringen, Kategorie-Permalinks nur für bestimmte Kategorien automatisch anzuzeigen

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy