Come faccio a generare a livello di codice un 404?
-
-
Forsepotreimodificare la queryper cercare unapaginainesistente.Perhaps I could modify the query to search for a non-existent page.
- 0
- 2012-11-23
- dave1010
-
Puoi chiarire la domanda qui?Staitentando dieseguireil codice sullapagina 404 deltuotema o desideri creareintenzionalmente unerrore 404?Can you clarify the question here? Are you trying to run code on your theme's 404 page or do you intentionally want to create a 404 error?
- 0
- 2012-11-23
- Steve
-
Voglio creare un 404. Modificherò unpo 'la domanda ...I want to create a 404. I'll edit the question a bit...
- 0
- 2012-11-23
- dave1010
-
in questo caso/quandoe perché vuoigenerare unapagina 404?in which case/when and why do you want to generate a 404 page?
- 0
- 2012-11-23
- fischi
-
Ho dovutofarloin almeno 2 occasioni diverse.Di recente,lepagine degli autori legacy davano un "404".È anche qualcosa di cui sono sicuro avròbisogno dinuovoin futuro.I've needed to do this on at least 2 different occasions. Most recently was making legacy author pages give a `404`. It's also something that I'm sure I'll need again in the future.
- 0
- 2012-11-26
- dave1010
-
3 risposta
- voti
-
- 2012-11-23
function generate_404_somehow() { global $wp_query; $wp_query->is_404 = true; } add_action('wp','generate_404_somehow');
Naturalmente,questoinvieràtutta latuapagina almodello 404.Non so quali siano le condizioniin cui dovrebbe attivarsi omeno.
Operesserepiù cauti (vedi commenti) ...
function generate_404_somehow() { global $wp_query; $wp_query->set_404(); } add_action('wp','generate_404_somehow');
function generate_404_somehow() { global $wp_query; $wp_query->is_404 = true; } add_action('wp','generate_404_somehow');
Of course, that will send all of you page to the 404 template. I don't know what the conditions are that this should fire or not fire.
Or to be more cautious (see comments) ...
function generate_404_somehow() { global $wp_query; $wp_query->set_404(); } add_action('wp','generate_404_somehow');
-
Funzionama `$ wp_query-> set_404 ()`esegue anche `$ wp_query->init_query_flags ()`,cheimpostatuttigli altriflag `is_ *` sufalse.This works but `$wp_query->set_404()` also runs `$wp_query->init_query_flags()`, which sets all the other `is_*` flags to false.
- 0
- 2012-11-23
- dave1010
-
Vero,manon vedo lanecessità del (moltominore) sovraccarico.Sareiinteressato a sapere seesiste un casoin cui questononfunziona.Non riesco atrovarne uno.True, but I don't see the need for the (very minor) overhead. I would be interested to know if there is a case where this doesn't work. I can't find one.
- 0
- 2012-11-23
- s_ha_dum
-
Devo assicurarmi che cose come `is_single ()`e `is_archive ()` restituiscanofalse,cosìtuttigli hook che le controllano siano correttie non aggiungano coseextra allapagina 404 (come "Avanti"e "Precedente"link).Questoperò dipende daplugine temi.I need to make sure that things like `is_single()` and `is_archive()` return false, so any hooks that check them are correct and don't add extra stuff to the 404 page (like the "Next" and "Previous" links). This depends on plugins and themes though.
- 0
- 2012-11-23
- dave1010
-
Capisco la cautela.L'uso di `$ wp_query-> set_404 ()` all'interno dellamiafunzione dovrebbe coprirlo.Presumo che sia quello che hai deciso difare.I understand the caution. Using `$wp_query->set_404()` inside my function should cover it. I assume that that is what you decided to do.
- 1
- 2012-11-23
- s_ha_dum
-
- 2019-08-01
L'altra risposta di s_ha_dumnonimposta lo stato dell'intestazione HTTP su 404 Not Found .Perfare ciò,aggiunge
status_header( 404 )
allafunzione.function generate_404_somehow() { global $wp_query; $wp_query->set_404(); status_header( 404 ); } add_action('wp','generate_404_somehow');
The other by s_ha_dum answers doesn't set the HTTP Header Status to 404 Not Found. To do this adds
status_header( 404 )
to the function.function generate_404_somehow() { global $wp_query; $wp_query->set_404(); status_header( 404 ); } add_action('wp','generate_404_somehow');
-
Sipotrebbeinoltre aggiungere `nocache_headers ()` come vistoin [`WP :: handle_404 ()`] (https://developer.wordpress.org/reference/classes/wp/handle_404/).You could additionally add `nocache_headers()` as seen in [`WP::handle_404()`](https://developer.wordpress.org/reference/classes/wp/handle_404/).
- 0
- 2019-08-01
- Nicolai
-
- 2012-11-23
Che cosa sembrafunzionare:
global $wp_query; $wp_query->set_404(); $wp_query->max_num_pages = 0; // stop theme from showing Next/Prev links
Questo sembraimpostare leintestazioni HTTPe caricareilmodello corretto (con
is_404()
che ètrue).What seems to work:
global $wp_query; $wp_query->set_404(); $wp_query->max_num_pages = 0; // stop theme from showing Next/Prev links
This seems to set the HTTP headers and load the right template (with
is_404()
being true).
Comepossofarfunzionare qualcosa di simile?
Fondamentalmentein determinate condizioni,voglio dire a WordPress dimostrareil suomodello 404 (a cuiposso agganciarmiin seguito se lo voglio)invece delmodello che staper caricare (adesempio unapagina o un archivio).
So chepotrei semplicementefare un reindirizzamento
302
a unapaginainesistente,ma èmolto complicato. Potrei ancheinviaremanualmente un'intestazione HTTP404
,mapoinonposso usare labellapagina 404 di WP (hogià cose che si collegano ais_404()
che devonoessere ottenute sparato almomentogiusto).