De ce WordPress alege archive.php în loc de page.php?

4 mar. 2022, 03:49:11
Vizualizări: 394
Voturi: 0

Am un Tip de Postare Personalizată (CPT) numit "Cariere" cu slug-ul "cariere".

Am creat pagina de listare a Carierelor cu Elementor (slug-ul paginii este tot "cariere"), am adăugat widget-ul de Postări și am folosit setările de Interogare pentru a selecta CPT-ul meu Cariere. Apoi am folosit din nou Elementor pentru a crea o temă de Postare Single pentru postările individuale despre cariere. Postările individuale funcționează bine, dar când încerc să revin la pagina de listare a Carierelor, primesc pagina de arhivă care nu arată deloc ca pagina pe care am creat-o cu Elementor (observ că pagina folosește acum archive.php cu plugin-ul Reveal template). Am încercat să forțez șablonul selectând un șablon de pagină personalizat, dar nu a funcționat. Am încercat și resetarea Permalink-urilor, dar fără succes.

Când încerc să deschid pagina Cariere în Elementor, primesc eroarea "Previzualizarea nu a putut fi încărcată". Când schimb URL-ul paginii de la "cariere" la "cariera" sau "posturi-deschise", eroarea dispare și pot deschide pagina în Elementor (cu noul slug).

Este corectă presupunerea că slug-ul CPT-ului nu poate fi același cu slug-ul paginii? Există o metodă mai bună de a realiza acest lucru (de preferință cu același slug pentru pagină și CPT)? Sau poate cu ajutorul Elementor pro?

Acesta este codul meu CPT:

function create_careers_posttype() {
    register_post_type( 'careers',
        array(
            'labels' => array(
                'name' => __('Cariere'), // Numele general al postărilor
                'singular_name' => __('Carieră') // Numele singular
            ),
            'public' => true, // Vizibil public
            'has_archive' => true, // Activează arhivele
            'rewrite' => array('slug' => 'cariere'), // Slug personalizat
            'show_in_rest' => true, // Vizibil în REST API
            'supports' => array('title', 'page-attributes'), // Funcționalități suportate
        )
    );
}
add_action( 'init', 'create_careers_posttype' ); // Rulează la inițializare
0
Toate răspunsurile la întrebare 1
2

Nu poți folosi slug-ul careers ca slug de pagină, deoarece este deja folosit ca nume pentru CPT. /careers este arhiva tipurilor tale de postări, motiv pentru care se încarcă archive.php și nu page.php.

Chiar dacă ai avea o pagină cu acel slug, regula de rescriere a arhivei are prioritate mai mare. De asemenea, o vei găsi în sitemap-ul generat, iar slug-ul /careers este folosit și pentru a genera legăturile permanente pentru postările individuale ale acelui tip.

Cea mai apropiată soluție pe care o poți obține este dezactivarea arhivei.

Am încercat să forțez șablonul selectând un șablon de pagină personalizat, dar nu a funcționat.

Aceasta nu funcționează deoarece pagina nu este niciodată cea afișată în primul rând. WordPress crede, pe baza interogării principale, că este pe o arhivă de postări de tipul careers și se va comporta conform ierarhiei standard de șabloane, alegând cel mai specific șablon pe care îl poate găsi și care se potrivește. De exemplu, dacă archive-careers.php era disponibil, l-ar fi încărcat pe acesta în schimb.

Ține minte, șablonul ales este determinat de parametrii interogării principale. WordPress nu a încărcat o pagină pentru că erai pe page.php, ci invers, a încărcat page.php pentru că interogarea principală spunea că este pentru o pagină și poate decide să încarce un șablon de pagină personalizat dacă acea pagină din interogare specifică unul. Dar dacă este o arhivă, acest lucru nu se întâmplă. Consultă ierarhia de șabloane pentru mai multe detalii.

Sau chiar cu ajutorul Elementor Pro?

Dacă dorești să stilizezi acea arhivă folosind Elementor, atunci va trebui să contactezi suportul Elementor sau să postezi într-o comunitate Elementor. Suportul pentru dezvoltatorii de plugin-uri terțe este în afara subiectului aici și nu intră în sfera acestui stack.

4 mar. 2022 04:15:51
Comentarii

Salut Tom, nu încerc să obțin suport pentru Elementor aici, poate nu am fost suficient de clar, dar ai răspuns la întrebarea mea despre unicitatea slug-urilor, așa că mulțumesc :D

hnnnng hnnnng
4 mar. 2022 04:23:06

Iată un link foarte util pentru a înțelege https://wphierarchy.com/

Sébastien Serre Sébastien Serre
4 mar. 2022 09:05:41