it-swarm.com.de

Wie sichere oder deaktiviere ich die RSS-Feeds?

Ich versuche WordPress als CMS einzurichten. Aus diesem Grund möchte ich die Feeds deaktivieren, da es sich hauptsächlich um eine gesicherte Site handelt. Ich habe alle Einstellungsseiten durchgesehen, aber keine Einstellung zum Optimieren oder Deaktivieren der Feeds gefunden. Also muss ich wohl eine benutzerdefinierte Funktion oder ein Plugin schreiben, um dies zu tun. Aber wie?

Hinsichtlich der vorhandenen Feeds wusste ich zumindest über diese Links Bescheid ...

http://example.com/comments/feed/
http://example.com/feed/

Neben der Hauptfrage mache ich mir also auch leichte Sorgen: Fängt der obige Code all verfügbare Feeds ab? Und ist dies wirklich der Weg, um alle Feeds zu deaktivieren?

Ich weiß, dass die Plugin-Unterstützung hier nicht zum Thema gehört. Nur für einen bestimmten Kontext/als Fußnote verwende ich jedoch die folgende Kombination relevanter beweglicher Teile:

Ich habe es geschafft, den Zugriff auf Seiten und Blog-Beiträge mithilfe des Plugins zu sichern. Wenn jedoch nicht authentifizierte Benutzer eine Feed-URL aufrufen, werden weiterhin Inhalte angezeigt. Da das Plugin nicht zu tun scheint, was ich will, habe ich beschlossen, selbst Code zu schreiben, um dies zu tun.

(Ich habe die Seite Aussehen> GeneratePress durchgesehen, aber nichts ist aktiviert. Ich habe auch die Seite Aussehen> Anpassen durchgesehen (und alle Einstellungen), aber auch dort nichts gefunden Schließlich habe ich die Optionen des "Gruppen" -Plugins mehrmals durchgelesen, aber keine Option gefunden.)

4
Jeroen

Wie in den Kommentaren von @kaiser erwähnt, ist Ihre Frage dieser Frage sehr ähnlich. Tatsächlich enthält die Frage selbst die Antwort. Fügen Sie den folgenden Code hinzu, um alle Feeds zu deaktivieren ...

function itsme_disable_feed() {
    wp_die( __( 'No feed available, please visit the <a href="'. esc_url( home_url( '/' ) ) .'">homepage</a>!' ) );
}

add_action('do_feed', 'itsme_disable_feed', 1);
add_action('do_feed_rdf', 'itsme_disable_feed', 1);
add_action('do_feed_rss', 'itsme_disable_feed', 1);
add_action('do_feed_rss2', 'itsme_disable_feed', 1);
add_action('do_feed_atom', 'itsme_disable_feed', 1);
add_action('do_feed_rss2_comments', 'itsme_disable_feed', 1);
add_action('do_feed_atom_comments', 'itsme_disable_feed', 1);

... zu einem leeren Plugin und aktiviere dieses Plugin. Dies sollte verhindern, dass jemand auf eine Feed-Aktion zugreift.

Beachten Sie, dass es sich bei dem obigen Code nur um einen Beispielcode handelt, vorzugsweise nicht um einen wp_die, sondern umzuleiten oder stattdessen einen 404 zu verwenden.

3
Jeroen

Basierend auf der Funktion add_feed ist hier ein Prototyp der Implementierung von remove_feed:

/**
 * Remove a feed type like /atom1/.
 *
 * @global WP_Rewrite $wp_rewrite
 *
 * @param string   $feedname Feed name.
 * @return string Feed action name.
 */
function remove_feed( $feedname ) {
        global $wp_rewrite;

        if ( in_array( $feedname, $wp_rewrite->feeds ) ) {
                $wp_rewrite->feeds = array_diff( $wp_rewrite->feeds, array( $feedname ) );
        }

        $hook = 'do_feed_' . $feedname;

        // Remove default function hook
        remove_all_actions( $hook );
        add_action( $hook, $hook );

        return $hook;
}

Verwendungszweck:

remove_feed( 'rss' );
2
Tom J Nowell