Paginile Custom Post Type sunt "negăsite"
Am creat două tipuri noi de Custom Post folosind cod pe care l-am utilizat cu succes în alte proiecte fără probleme. Primul se numește top_charts
, celălalt case_studies
, și ambele apar corect în meniul de administrare și pot crea postări noi.
Din păcate, noile postări nu apar. Primesc doar un răspuns 404.php
.
Am creat un archive-top_charts.php
pentru a vedea dacă pot face să apară ceva, dar văd un răspuns 404.php
"pagina nu a fost găsită".
Inițial am numit postările personalizate top-charts
și case-studies
, dar m-am gândit că cratima ar putea fi problema, așa că le-am redenumit folosind underscore în loc. Nu a ajutat.
Am încercat să salvez din nou Permalinks, dar nimic nu s-a schimbat. Pagina mea .htaccess arată așa cum te-ai aștepta (și alte pagini funcționează bine). Ce altceva pot verifica?

Nu este nevoie să editați codul PHP!
Deși puteți face acest lucru în funcția care înregistrează tipul personalizat de postare, ca în celelalte răspunsuri, puteți face acest lucru și din meniul de setări, evitând astfel să atingeți codul PHP:
Pentru a reseta regulile de rescriere sau permalinkurile WordPress (de obicei este necesar să faceți acest lucru manual pentru noile tipuri de postări personalizate) din Panou:
- În meniul principal, accesați "Setări > Permalinkuri".
- Derulați în jos dacă este necesar și faceți clic pe "Salvare modificări".
- Regulile de rescriere și permalinkurile vor fi resetate.
Este atât de simplu!

Cred că aveam nevoie și de has_archive
, dar e bine de știut că poți forța o reîmprospătare prin meniu.

Există vreo metodă de a salva automat modificările (actualizările) la permalink-uri în loc să mergi de fiecare dată la Setări > Permalink-uri când se adaugă o categorie/termen la CPT? Cum ar putea face acest lucru un non-admin dacă nu are acces la setări? Se poate apela un hook când se adaugă o nouă categorie pentru a reîmprospăta automat permalink-urile?

Pentru a rezolva problema postărilor personalizate care nu sunt găsite, folosește următorul cod în fișierul tău functions.php
:
flush_rewrite_rules( false );
Acest lucru ar trebui făcut doar ca măsură temporară, altfel va rula la fiecare încărcare de pagină.
Pentru mai multe detalii, urmează acest link
În cazul în care archive-top_charts.php
nu apare, asigură-te că ai 'has_archive' => true
atunci când înregistrezi tipul tău de postare.

Îmi dau seama că este târziu (și poate nu este problema legată), dar am vrut să subliniez pentru alții o posibilă problemă.
În cazul meu, am setat rescrierea taxonomiei la "tools" și rescrierea tipului de conținut la același lucru. Prin urmare, nu a funcționat niciodată corect din cauza unui conflict. Din păcate, nu există nicio detectare pentru așa ceva, așa că am vrut doar să atrag atenția altora asupra acestui aspect.

În cazul meu, a fost vorba de drepturi lipsă în folderul de dezvoltare, astfel încât fișierul .htaccess nu a putut fi creat sau modificat.
De aceea, flush-ul manual sau salvarea modificărilor în WP Permalinks nu a ajutat.
Soluția a fost să creez fișierul .htaccess manual.
