Cum să configurezi o pagină de categorie ca pagină principală a blogului
Vreau să folosesc o pagină de categorie ca pagină principală a blogului meu. Este posibil și cum pot face asta? Am încercat cu o regulă de rescriere în .htaccess dar nu a funcționat.

Actualizare
Eliminând toate celelalte soluții, rămâne cel puțin una: template_redirect
:
function wpse121308_redirect_homepage() {
// Verifică indexul postărilor de blog
// NU pagina principală a site-ului,
// care ar fi is_front_page()
if ( is_home() ) {
wp_redirect( get_category_link( $id ) );
exit();
}
}
add_action( 'template_redirect', 'wpse121308_redirect_homepage' );
Va trebui să transmiți ID-ul corespunzător al categoriei $id
, desigur.
Beneficiul redirecționării la template_redirect
este că ai doar un singur proces de încărcare a șablonului, în loc de o a doua redirecționare după încărcarea șablonului.
Reține că poți interveni în proces chiar mai devreme, cum ar fi la pre_get_posts
, economisind astfel o întreagă cerere de interogare:
add_action( 'pre_get_posts', 'wpse121308_redirect_homepage' );
Răspuns original
Dacă tot ce vrei este să afișezi o anumită categorie pe indexul postărilor de blog, poți realiza asta cu un simplu filtru al $wp_query
principal la pre_get_posts
:
function wpse1862_pre_get_posts( $query ) {
// Modifică doar interogarea principală
// pe pagina indexului postărilor de blog
if ( is_home() && $query->is_main_query() ) {
$query->set( 'category_name', 'category-slug-here' );
}
}
add_action( 'pre_get_posts', 'wpse1862_pre_get_posts' );
Dacă vrei să modifici șablonul, atunci poți face unul din două lucruri:
- Creează un
home.php
cu marcajul dorit - Folosește
template_redirect
sauhome_template
pentru a forța WordPress să includă șablonul tăucategory.php
.
Editare
Și dacă vrei ca URL-ul indexului postărilor de blog să arate astfel:
www.example.com/main
Atunci poți folosi o Pagină Principală Statică, și să atribui o pagină statică numită "main" ca index al postărilor tale de blog.
Și dacă acesta este obiectivul tău:
Chiar vreau redirecționarea. Vreau ca pagina principală (
http://example.com/
) să redirecționeze către pagina categoriei (care arată cahttp://example.com/main/
)
...atunci răspunsul acceptat este corect pentru cazul tău.

Îmi pare rău, dar nu. Chiar vreau redirecționarea. Vreau ca pagina principală (http://example.com/
) să fie redirecționată către pagina de categorie (care arată ca http://example.com/main/
), deoarece categoriile sunt 'Ediții' (pe țări) pe site, iar cea implicită este SUA (main). Aș fi vrut să pot edita descrierea recompensei pentru a clarifica acest lucru.

Poți edita întrebarea pentru a clarifica acest lucru. Și dacă întrebarea ta este atât de diferită de cea inițială, ar fi trebuit să pui o întrebare separată, în loc să plasezi o recompensă pe aceasta. Și: de ce vrei o redirecționare, mai exact? O redirecționare este o implementare, nu un scop final. Descrie ce anume încerci să obții. O redirecționare poate să fie sau nu singura sau cea mai bună implementare.

Pagina de categorie nu poate fi pagina principală (pur și simplu nu funcționează așa).
Există două alte opțiuni:
- Limitează pagina principală la articole dintr-o anumită categorie (aproape la fel, dar nu exact același lucru).
- Redirecționează pagina principală către pagina reală de categorie.
Deoarece se pare că ești de acord cu redirecționarea, încearcă următoarele. Creează un șablon home.php
în directorul temei tale cu următorul conținut:
<?php
wp_redirect( 'http://www.siteultau.com/category/slug-categorie' );
?>
Probabil există o metodă mai elegantă de a face acest lucru folosind hook-uri, dar momentan nu-mi vine în minte nimic.

Mulțumesc, exact asta căutam. WP ar trebui să documenteze mai bine toate acele fișiere PHP speciale (cum ar fi maintenance.php).

Cea mai semantică metodă de a face acest lucru, în loc să folosești o redirecționare (care adaugă timp suplimentar de conexiune), este să creezi un șablon personalizat pentru pagină.
pagină nouă:
/* Template Name: Pagina Principală Nouă după Categorie */
<?php query_posts('cat_id'=>'3');?>
<--inserează bucla-->

Dacă dorești să redirecționezi către o anumită categorie, de exemplu categoria cu ID-ul 3, atunci copiază conținutul din category.php și creează un alt șablon numit category-3.php. După aceea:
* Template Name: Pagina de Start Nouă după Categoria 3*/
<?php query_posts('cat_id'=>'3');?>
<--inserează bucla-->
În WordPress, în secțiunea de Citire, trebuie să setezi pagina de start ca pagină de articole, iar pentru pagina principală să selectezi șablonul "Pagina de Start Nouă după Categoria 3".
