web-dev-qa-db-fra.com

Rediriger le flux vers la page 404

Je souhaite rediriger mes visiteurs vers mon 404 lorsqu'ils visitent un fil de ma page. Quelque chose comme ça. Je voudrais faire cela sans changer l'URL de l'en-tête.

function fb_disable_feed() {

// set_404();

}
add_action('do_feed', 'fb_disable_feed', 1);
add_action('do_feed_rdf', 'fb_disable_feed', 1);
add_action('do_feed_rss', 'fb_disable_feed', 1);
add_action('do_feed_rss2', 'fb_disable_feed', 1);
add_action('do_feed_atom', 'fb_disable_feed', 1);

S'il vous plaît aider!

2
Hakan

Il y a trois étapes simples pour obtenir ce que vous voulez:

  1. Accrochez-vous dans 'template_redirect' pour agir avant que le flux ne soit affiché.
  2. S'il s'agit d'un flux, envoyez un en-tête d'état 404 et
  3. charger le modèle 404.

Voici un plugin simple qui le fait:

<?php # -*- coding: utf-8 -*-
/**
 * Plugin Name: T5 404 Feed
 * Description: Sends a 404 status code for all feeds and loads the <code>404.php</code> template.
 */

add_action( 'template_redirect', 't5_404_feed', 1 );
function t5_404_feed()
{
    if ( is_feed() )
    {
        status_header( '404' );
        locate_template( array ( '404.php', 'index.php ' ), TRUE, TRUE );
        exit;
    }
}

Je ne suis pas sûr que 404 soit le bon code d'état. 410 (Gone) peut correspondre mieux.

3
fuxia