Frage

Ich möchte eine Kategorie -Seite als Startseite meines Blogs verwenden. Ist das möglich und wie kann ich das tun? Es versuchte es mit einer .htacces -Umschreiben -Regel, aber das hat nicht funktioniert.

War es hilfreich?

Lösung

Aktualisieren

Wenn Sie alle anderen Lösungen beseitigen, gibt es mindestens einen: verbleiben: template_redirect:

function wpse121308_redirect_homepage() {
    // Check for blog posts index
    // NOT site front page, 
    // which would be is_front_page()
    if ( is_home() ) {
        wp_redirect( get_category_link( $id ) );
        exit();
    }
}
add_action( 'template_redirect', 'wpse121308_redirect_homepage' );

Sie müssen die entsprechende Kategorie bestehen $id, Natürlich.

Der Vorteil der Umleitung bei template_redirect ist, dass Sie nur eine Vorlageladung erhalten, anstatt eine zweite Weiterleitung nach Die Vorlage lädt.

Beachten Sie, dass Sie den Prozess noch früher einschließen können, z. B. bei pre_get_posts, Dadurch speichern Sie möglicherweise eine gesamte Anfrage zur Abfrage:

add_action( 'pre_get_posts', 'wpse121308_redirect_homepage' );

Ursprüngliche Antwort

Wenn Sie nur eine bestimmte Kategorie im Index der Blog -Beiträge anzeigen möchten, können Sie dies mit einem einfachen Filter des Haupts erreichen $wp_query bei pre_get_posts:

function wpse1862_pre_get_posts( $query ) {
    // Only modify the main query
    // on the blog posts index page
    if ( is_home() && $query->is_main_query() ) {
        $query->set( 'category_name', 'category-slug-here' );
    }
}
add_action( 'pre_get_posts', 'wpse1862_pre_get_posts' );

Wenn Sie die ändern möchten Schablone, Dann können Sie eines von zwei Dingen tun:

  1. Ein ... kreieren home.php mit dem gewünschten Markup
  2. Verwenden template_redirect oder home_template WordPress zu zwingen, Ihre einzuschließen category.php Schablone.

Bearbeiten

Und wenn Sie möchten, dass die Blog -Posts indexe URL aussehen wie:

www.example.com/main

Dann kannst du verwenden ein Statische Titelseite, und weisen Sie eine statische Seite mit dem Namen "Main" als Index des Blogs zu.

Und wenn dies Ihr Ziel ist:

Ich möchte wirklich die Weiterleitung. Ich möchte die Startseite (http://example.com/) Um auf die Kategorie -Seite umzuleiten (die wie aussieht wie http://example.com/main/)

... dann ist die akzeptierte Antwort für Ihren Anwendungsfall korrekt.

Andere Tipps

Die Kategorie -Seite kann keine Homepage sein (funktioniert einfach nicht so).

Es gibt zwei weitere Optionen:

  1. Beschränken Sie die Homepage auf Beiträge aus spezifischer Kategorie (schließen, aber nicht dasselbe).
  2. Homepage auf die tatsächliche Kategorieseite umleiten.

Da es Ihnen gut zu scheinen, versuchen Sie es zu folgen. Schaffen home.php Vorlage in Ihrem Themenverzeichnis mit folgenden Inhalten:

<?php
wp_redirect( 'http://www.yoursite.com/category/category-slug' );
?>

Es gibt wahrscheinlich eine ordentlichere Möglichkeit, dies mit Haken zu tun, aber nichts, woran ich jetzt denken kann.

Die semantischste Möglichkeit, dies zu tun, anstatt eine Umleitung (zusätzliche Verbindungszeit) zu verwenden, besteht darin, eine benutzerdefinierte Seitenvorlage zu erstellen.

neue Seite:

/* Template Name: New Homepage by Cat */

<?php query_posts('cat_id'=>'3');?>
<--insert loop-->

Fügen Sie einfach einen Kategoriefilter in Ihre Index.php -Abfrage in Ihrer Vorlage hinzu. Simples

Wenn Sie in eine bestimmte Kategorie-Kategorie-ID 3 umleiten möchten, kopieren Sie den Inhalt von category.php und erstellen

    * Template Name: New Homepage by Cat 3*/

    <?php query_posts('cat_id'=>'3');?>
    <--insert loop-->

In WordPress Reading müssen wir als Beiträge nach Hause und für die Homepage die neue Homepage von CAT 3 als Vorlage aus Wählen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit wordpress.stackexchange
scroll top