it-swarm.dev

Jak vytvořit stránku kategorie na domovské stránce blogu?

Chci použít stránku kategorie jako domovskou stránku svého blogu. Je to možné a jak to mohu udělat? Vyzkoušelo to s pravidlem přepisu .htacces, ale to nefungovalo.

3
2ndkauboy

Aktualizace

Odstraněním všech ostatních řešení zbývá alespoň jedno: 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' );

Samozřejmě musíte složit příslušnou kategorii $id.

Výhodou přesměrování na template_redirect je to, že pouze jedna šablona-zatížení se odehrává, spíše než druhé přesměrování po načítání šablony.

Všimněte si, že do procesu můžete připojit ještě dříve, například v souboru pre_get_posts, čímž můžete potenciálně uložit celý požadavek dotazu:

add_action( 'pre_get_posts', 'wpse121308_redirect_homepage' );

Původní odpověď

Pokud chcete, aby se v indexu blogů zobrazovala určitá kategorie, můžete to provést pomocí jednoduchého filtru hlavního $wp_query v souboru 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' );

Chcete-li upravit šablonu, můžete provést jednu ze dvou věcí:

  1. Vytvořte home.php s požadovaným značením
  2. Použijte template_redirect nebo home_template k vynucení WordPressu, aby zahrnoval vaši category.php šablonu.

Upravit

A pokud chcete, aby adresa blogu v indexu blogu vypadala takto:

www.example.com/main

Pak můžete použít stránku Static Front Page , a přiřadit index statické stránky nazvaný "hlavní".

A pokud je to váš cíl:

Opravdu chci přesměrování. Chci, aby domovská stránka (http://example.com/) přesměrovala na stránku kategorie (která vypadá jako http://example.com/main/)

... pak je přijatá odpověď správná pro váš případ použití.

10
Chip Bennett

Stránka kategorie nemůže být domovskou stránkou (prostě takhle nefunguje).

Existují dvě další možnosti:

  1. Omezte domovskou stránku na příspěvky z určité kategorie (zavřete, ale ne totéž).
  2. Přesměrovat domovskou stránku na stránku skutečné kategorie.

Vzhledem k tomu, že se vám zdá, že jste s přesměrováním v pořádku, zkuste následující. Vytvořte home.php šablonu v adresáři motivu s následujícím obsahem:

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

Pravděpodobně je to ještě víc uklizený způsob, jak to udělat s háčky, ale nic, co bych mohl myslet hned teď.

2
Rarst

Nejdůležitějším způsobem, jak to provést namísto použití přesměrování (extra čas připojení), je vytvořit vlastní šablonu stránky.

nová stránka:

/* Template Name: New Homepage by Cat */

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

Pokud chcete přesměrovat na určitou kategorii, tj. Kategorii id 3, zkopírujte obsah z kategorie.php a vytvořte další šablonu, jako je kategorie 3.php.

    * Template Name: New Homepage by Cat 3*/

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

V wordpress čtení musíme nastavit domov jako stránku příspěvků a pro domovskou stránku vyberte jako domovskou stránku novou stránku Cat 3.

0
Kishore Sahoo

stačí přidat filtr kategorie do dotazu index.php ve vaší šabloně. simples

0
Mild Fuzz