Die beste Stelle des Codes zum Erstellen einer robots.txt-Datei

Ich verwende das Option-Tree-Framework für die Optionen meines Themas. Jetzt möchte ich die Option hinzufügen, um die robots.txt Datei zu erstellen und zu bearbeiten. Erstens habe ich die function, den Inhalt der Datei zu erhalten oder sie mit einem Standardinhalt zu erstellen; ist das:

function get_robots($path) { $robots_file = $path . DIRECTORY_SEPARATOR . 'robots.txt'; //The robots file. if(file_exists($robots_file)){ return file_get_contents($robots_file); } else { $default_content = "User-agent: *\nDisallow:"; file_put_contents($robots_file, $default_content); return $default_content; } } get_robots(getcwd()); 

Wenn ich diese function in der functions.php , wird sie bei jeder Seitenladung ausgeführt, und das ist eine winzige Verschwendung. Ich plane, diese function auf robots.php und dann werde ich es nennen, wenn ich es brauche. Aber wenn es der beste Moment ist, wo ist der beste Ort des Codes, um ihn einmal auszuführen?

Jedes Mal, wenn ich zum Beispiel die Optionen-Seite lade? Edit: Nein, es funktioniert nicht, da die Optionen Einstellungen in der Datei functions.php so dass die Datei auf jeder Seite erstellt wird.

Solutions Collecting From Web of "Die beste Stelle des Codes zum Erstellen einer robots.txt-Datei"

Sie unterschätzen die Komplexität der Handhabung von Robots-Dateien in WordPress. Das Vorhandensein einer physischen Datei ist einer von zwei Fällen.

Wenn während des is_robots() Vorlage keine physische Datei vorhanden ist, wird die Überprüfung von is_robots() durchgeführt und im positiven Fall wird do_robots() , wobei die “Datei” im laufenden Betrieb generiert und do_robots() .

Einfach nur weitermachen und robots.txt auf einer beliebigen Site erstellen, könnte sehr wahrscheinlich Chaos mit Code verursachen, der virtuelle Dateien und Hooks nutzt.

Beantworten der direkten Frage – Ich bin nicht sicher, welche Ziele Sie mit dieser functionalität verfolgen, daher ist es etwas schwierig zu sagen, was am besten für das Timing funktioniert. Die simples könnte sein, es auf der Optionsseite des Besuchs-Themas auszuführen (in der gleichen Weise wie das Besuchen von nativen Permalink-Einstellungen Permalink-Flush durchführt).

Die Frage hat zu viele Details. Es spielt keine Rolle, was Sie tun möchten, wenn Sie Code nur “einmal” ausführen möchten, ist die Aktivierung des Themas am besten. wahrscheinlich so etwas wie

if ( is_admin() && isset($_GET['activated'] ) && $pagenow == 'themes.php' ) { get_robots(); }

Aber: Dies ist ein großartiges Beispiel dafür, dass Themen nicht über das Design von Frontend hinausgehen sollten, da man leicht versteht, dass man nicht versteht, wie robots.txt von WordPress erzeugt wird und dass man die functionalität dedizierter Plugins wahrscheinlich stört. Tatsächlich funktioniert Ihr Code auf keiner Website mit minimalen Sicherheitseinstellungen.