Problema cu afișarea conținutului pe pagina statică de start
Cred că fac ceva greșit aici.
Am configurat site-ul meu cu o pagină de start statică folosind front-page.php. Am creat o pagină în admin cu un titlu și am selectat front-page.php în dropdown-ul de template.
Titlul meu se afișează corect, însă the_content(); nu apare.
Nu fac nimic special, așa cum se vede mai jos.
<?php
/*
Template Name: Pagina de start
*/ ?>
<?php get_header(); ?>
<div class="content">
<div class="welcome_area">
<div class="welcome_area_title"><?php the_title('');?></div>
<div class="welcome_area_text">
<?php the_content(); ?>
</div>
Aveți idei de ce nu apare conținutul?

Nu ai cu adevărat un Loop.
<?php get_header(); ?>
<div class="content">
<div class="welcome_area">
<div class="welcome_area_title"><?php the_title('');?></div>
<div class="welcome_area_text"><?php
if (have_posts()) {
while (have_posts()) {
the_post();
the_content();
}
} ?>
Ceea ce se întâmplă este:
- Folosești
have_posts()
pentru a verifica dacă ai conținut de postare. Poți folosi o clauzăelse
pentru a furniza conținut implicit dacă dorești. - Parcurgi acel conținut folosind
while(have_posts())
- Rulezi
the_post()
pentru a configura variabila$post
și, de asemenea, pentru a incrementa contorul loop-ului. Încearcă fărăthe_post()
și vei obține un loop infinit. Aceasta este partea cea mai critică care lipsea din codul tău. - Acum că
the_post()
a fost rulat, template tag-urile tale pentru postare ar trebui să funcționeze conform așteptărilor.
Nu am editat prea radical codul tău, dar aș aduce și acel the_title
în Loop, chiar dacă pare să funcționeze. Chiar ar trebui să fie în interiorul Loop-ului și nu funcționează întotdeauna conform așteptărilor în afara acestuia.
Referințe
https://codex.wordpress.org/Class_Reference/WP_Query#Methods

Ce greșeală stupidă. Nu pot să cred că am ratat asta, a fost o zi lungă. Mulțumesc pentru observație.

Nu este nevoie să folosești have_posts()
în front-page.php
; front-page.php
va fi folosit doar dacă există un post de afișat. Deci poți pune direct the_post()
și să lași afară instrucțiunile if
și while
.

În primul rând, dacă ai setat pagina ta ca pagină frontală statică, nu este necesar să asociezi șablonul cu pagina, iar șablonul nu are nevoie de un header. WordPress folosește automat șablonul front-page.php
pentru o pagină frontală statică, conform ierarhiei de șabloane.
Pentru a răspunde la întrebarea ta, trebuie să apelezi mai întâi the_post()
pentru a inițializa variabilele globale de care se bazează funcția the_content()
.
