{"id":686,"date":"2010-10-28T21:04:30","date_gmt":"2010-10-28T19:04:30","guid":{"rendered":"https:\/\/www.creativejuiz.fr\/blog\/?p=686"},"modified":"2015-01-18T17:23:51","modified_gmt":"2015-01-18T16:23:51","slug":"une-page-404-utile-sous-wordpress-ou-ailleur","status":"publish","type":"post","link":"https:\/\/www.creativejuiz.fr\/blog\/tutoriels\/une-page-404-utile-sous-wordpress-ou-ailleur","title":{"rendered":"Une page 404 utile sous WordPress, ou ailleurs&#8230;"},"content":{"rendered":"<p>Les erreurs 404 indiquent une page introuvable. C&rsquo;est une erreur plus ou moins fr\u00e9quente qui indique simplement que le document recherch\u00e9 n&rsquo;est plus disponible par l&rsquo;adresse renseign\u00e9e dans la barre d&rsquo;adresse. Cela peut \u00eatre caus\u00e9 par une erreur d&rsquo;\u00e9criture d&rsquo;un lien, ou par<!--more--> un d\u00e9placement de fichier dont le lien pour y acc\u00e9der n&rsquo;aurait pas \u00e9t\u00e9 mis \u00e0 jour (soit sur le site, soit sur le moteur de recherche qui n&rsquo;a pas encore eu le temps de mettre \u00e0 jour sa base de donn\u00e9es).<\/p>\n<p>C&rsquo;est assez typique des CMS pour lesquels les contenus peuvent beaucoup plus facilement \u00eatre mis \u00e0 jour, les pages et articles peuvent tr\u00e8s rapidement \u00eatre renomm\u00e9s ou supprim\u00e9s, les erreurs 404 sont donc vite arriv\u00e9es.<\/p>\n<p>WordPress propose dans son template par d\u00e9faut une page 404.php tr\u00e8s basique.<br \/>\nBeaucoup de Webdesigners s&rsquo;amusent \u00e0 transformer cette page en un \u00e9l\u00e9ment graphique attrayant et original, il y a m\u00eame des <a href=\"http:\/\/www.marevueweb.com\/pages-404-originales\/\" target=\"_blank\" title=\"Visualiser quelques pages 404 originales sur MaRevueWeb.com (nouvelle fen\u00eatre)\">sites sp\u00e9cialis\u00e9s<\/a> qui r\u00e9f\u00e9rencent ce type de page sur crit\u00e8re de l&rsquo;originalit\u00e9.<\/p>\n<p>En dehors de l&rsquo;aspect graphique, cette page peut facilement se voir attribuer une fonction d&rsquo;alerte qui va permettre au Webmaster d&rsquo;\u00eatre pr\u00e9venu de son affichage.<\/p>\n<p class=\"center\"><img decoding=\"async\" src=\"https:\/\/www.creativejuiz.fr\/blog\/wp-content\/uploads\/2010\/10\/404-illustration.jpg\" alt=\"Illustration d&#039;un erreur 404\" width=\"450\" height=\"337\" class=\"aligncenter size-full wp-image-712\" srcset=\"https:\/\/www.creativejuiz.fr\/blog\/wp-content\/uploads\/2010\/10\/404-illustration.jpg 450w, https:\/\/www.creativejuiz.fr\/blog\/wp-content\/uploads\/2010\/10\/404-illustration-300x224.jpg 300w\" sizes=\"(max-width: 450px) 100vw, 450px\" \/><\/p>\n<p>Ce billet n&rsquo;est pas vraiment digne d&rsquo;un tutoriel puisque je n&rsquo;ai fait que vous pr\u00e9senter le code que j&rsquo;ai mont\u00e9 pour un site en cours de r\u00e9alisation avec quelques commentaires en guise d&rsquo;explications.<br \/>\nCest aussi pour cela que la cat\u00e9gorie <a href=\"https:\/\/www.creativejuiz.fr\/blog\/theme\/ressources-telechargements\" title=\"Voir tous les articles de la cat\u00e9gorie &quot;Ressources&quot;\"><strong>Ressources<\/strong><\/a> lui est associ\u00e9e.<\/p>\n<p>Je vous pr\u00e9sente donc un code php \u00e0 placer dans la page 404.php de WordPress, ou \u00e0 ex\u00e9cuter\/afficher sur <a href=\"http:\/\/codex.wordpress.org\/Conditional_Tags#A_404_Not_Found_Page\" title=\"Information sur les conditionnelles sur WordPress (nouvelle fen\u00eatre)\" target=\"_blank\" hreflang=\"en\">la condition <code>is_404() <\/code><\/a><\/p>\n<pre class=\"code\"><code class=\"php\">&lt;?php \r\n\t\/\/ informations concernant votre site\r\n\t$adminemail = get_bloginfo('admin_email'); \/\/le mail du webmaster\r\n\t$website = get_bloginfo('url'); \/\/l'url du site\r\n\t$websitename = get_bloginfo('name'); \/\/ le nom du site\r\n\t\r\n\t\/\/ on commence \u00e0 composer notre futur paragraphe\r\n\t$output_p = '&lt;p&gt;Vous ';\r\n\r\n\t\/\/ si le visiteur a tap\u00e9 l'adresse manuellement\r\n\tif (!isset($_SERVER['HTTP_REFERER'])) :\r\n\t\t$output_p .= 'avez essay\u00e9 de rejoindre la page ';\r\n\t\t$output_bonux = 'Tout n\\'est pas perdu !'; \/\/optionnel\r\n\r\n\t\/\/ si le visiteur a cliqu\u00e9 sur un lien (referer)\r\n\telseif (isset($_SERVER['HTTP_REFERER'])) :\r\n\t\t$output_p .= 'avez cliqu\u00e9 un lien pour rejoindre la page ';\r\n\r\n\t\t$failuremess = \"Un utilisateur a essay\u00e9 d'aller \u00e0 la page $website\".$_SERVER['REQUEST_URI'].\" et a re\u00e7u une erreur 404 (page not found). \";\r\n\t\t$failuremess .= \"Il venait de l'url : \".$_SERVER['HTTP_REFERER'];\r\n\t\r\n\t\t$mailing = mail($adminemail, \"Lien mort ? : \".$_SERVER['REQUEST_URI'], $failuremess, \"From: $websitename &lt;noreply@$website&gt;\");\r\n\t\r\n\t\t\/\/si le mail est bien envoy\u00e9\r\n\t\tif($mailing) : \r\n\t\t\t$output_bonux .= \"Un administrateur a \u00e9t\u00e9 pr\u00e9venu du probl\u00e8me par email aussi. Il fera le n\u00e9cessaire le plus rapidement possible.\";\r\n\t\t\t\r\n\t\t\/\/s'il ne l'est pas\r\n\t\telse : \r\n\t\t\t$output_bonux .= \"L'administrateur du site aurait d\u00fb \u00eatre pr\u00e9venu mais le mail n'a pas pu lui parvenir.&lt;br \/&gt;\";\r\n\t\t\t$output_bonux .= \"Si vous souhaitez lui signaler le probl\u00e8me, merci de copier le message suivant :&lt;br \/&gt;\";\r\n\t\t\t$output_bonux .= \"&lt;code&gt;Referer : \".$_SERVER['HTTP_REFERER'].\"&lt;br \/&gt;\";\r\n\t\t\t$output_bonux .= \"Request : $website\".$_SERVER['REQUEST_URI'].\"&lt;\/code&gt;\";\r\n\t\tendif;\r\n\t\t\r\n\tendif;\r\n\r\n\t\/\/ on termine notre paragraphe, \r\n\t\/\/ il s'agit de la partie qui apparait de toute mani\u00e8re\r\n\t$output_p .= ': &lt;br \/&gt;&lt;code class=\"url\"&gt;'.$website.$_SERVER['REQUEST_URI'].'&lt;\/code&gt;&lt;br \/&gt;'; \r\n\t$output_p .= ' et elle semble ne pas exister.&lt;br \/&gt;'; \r\n\t$output_p .= $output_bonux.'&lt;br \/&gt;'; \r\n\t$output_p .= 'Vous pouvez revenir en arri\u00e8re et essayer \u00e0 nouveau, ou effectuer une recherche :&lt;\/p&gt;'; \r\n\t\r\n\t\/\/ affichons le texte\r\n\techo $output_p;\r\n\t\r\n\t\/\/ affichons le formulaire de recherche maintenant\r\n\tget_search_form();\r\n\t\r\n\t\/* ou utilisez une fonction \"moins wordpress\" comme\r\n\tinclude(TEMPLATEPATH . \"\/searchform.php\"); \r\n\t*\/ \r\n?&gt;<\/code><\/pre>\n<p>Bien entendu ce code est tr\u00e8s minimaliste et peut largement \u00eatre optimis\u00e9 avec quelques contr\u00f4les ou informations suppl\u00e9mentaires.<br \/>\nIl n&rsquo;est pas destin\u00e9 uniquement \u00e0 WordPress puisqu&rsquo;il vous suffit de remplacer les fonctions pr\u00e9d\u00e9finies (<code>blog_info()<\/code> ou <code>get_search_form()<\/code>) par vos fonctions\/variables personnelles.<\/p>\n<p>Le code PHP est plut\u00f4t basique, mais s&rsquo;il vous faut des informations compl\u00e9mentaires n&rsquo;h\u00e9sitez pas \u00e0 me le faire savoir.<\/p>\n<p>J&rsquo;esp\u00e8re que cela vous servira.<\/p>\n<p>Bon code !<\/p>\n<p><em class=\"sources\">Liens utiles et sources :<br \/>\n&#8211; <a href=\"http:\/\/codex.wordpress.org\/fr:Marqueurs_conditionnels\" title=\"Le codex WordPress a propos des marqueurs conditionnels (nouvelle fen\u00eatre)\" target=\"_blank\">http:\/\/codex.wordpress.org\/fr:Marqueurs_conditionnels<\/a><br \/>\n&#8211; <a href=\"http:\/\/codex.wordpress.org\/Conditional_Tags#A_404_Not_Found_Page\" title=\"Information sur les conditionnelles sur WordPress (nouvelle fen\u00eatre)\" target=\"_blank\" hreflang=\"en\">La condition <code>is_404()<\/code> de WordPress<\/a><br \/>\n&#8211; <a href=\"http:\/\/www.marevueweb.com\/pages-404-originales\/\" target=\"_blank\" title=\"Visualiser quelques pages 404 originales sur MaRevueWeb.com (nouvelle fen\u00eatre)\">Design de pages 404<\/a><br \/>\n<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>http:\/\/www.marevueweb.com\/pages-404-originales\/<\/p>\n","protected":false},"author":4,"featured_media":709,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_bluesky_dont_syndicate":"","_bluesky_syndication_accounts":"","_bluesky_syndication_text":"","footnotes":""},"categories":[50,9,13],"tags":[234,228,235,227,233],"coauthors":[597],"class_list":["post-686","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ressources-telechargements","category-tutoriels","category-wordpress","tag-alerte","tag-astuce","tag-mail","tag-page-404","tag-php"],"acf":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.creativejuiz.fr\/blog\/wp-json\/wp\/v2\/posts\/686","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.creativejuiz.fr\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.creativejuiz.fr\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.creativejuiz.fr\/blog\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/www.creativejuiz.fr\/blog\/wp-json\/wp\/v2\/comments?post=686"}],"version-history":[{"count":0,"href":"https:\/\/www.creativejuiz.fr\/blog\/wp-json\/wp\/v2\/posts\/686\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.creativejuiz.fr\/blog\/wp-json\/wp\/v2\/media\/709"}],"wp:attachment":[{"href":"https:\/\/www.creativejuiz.fr\/blog\/wp-json\/wp\/v2\/media?parent=686"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.creativejuiz.fr\/blog\/wp-json\/wp\/v2\/categories?post=686"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.creativejuiz.fr\/blog\/wp-json\/wp\/v2\/tags?post=686"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.creativejuiz.fr\/blog\/wp-json\/wp\/v2\/coauthors?post=686"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}