webentwicklung-frage-antwort-db.com.de

Funktion zum Aktivieren eines WordPress-Themes in einem Plugin

Ich erstelle ein Plugin, das ein Thema generiert, und möchte daher am Ende des Themenerstellungsprozesses ein Kontrollkästchen haben, mit dem das frisch erstellte Thema aktiviert werden kann, ohne es manuell zu tun. Gibt es eine Funktion, die das kann?

3
Notorious Etam

Natürlich gibt es dafür eine Funktion ( Codex ):

switch_theme( $stylesheet )

Es:

Schaltet das aktuelle Thema auf neue Vorlagen- und Stylesheet-Namen um. Akzeptiert ein Argument: $ Stylesheet des Themas. ($ stylesheet ist der Name Ihres Ordner-Slugs. Es ist derselbe Wert, den Sie für ein untergeordnetes Thema verwenden würden, etwa twentythirteen.) Es akzeptiert auch eine zusätzliche Funktionssignatur mit zwei Argumenten: $ template und dann $ stylesheet. Dies dient der Abwärtskompatibilität.

Und warum ist das besser? WordPress verwendet Filter und Aktionen für viele Dinge. Wenn Sie beispielsweise das Thema wechseln, werden die nicht verwendeten Widgets gespeichert, sodass Sie sie in neuen Seitenleisten wiederherstellen können. Dies ist jedoch nicht der Fall, wenn Sie das Thema direkt in der Datenbank wechseln.

3

Das einzige, was mir in den Sinn kommt, ist, es aus der Datenbank zu tun. Nachdem Sie also den Status des Kontrollkästchens aktiviert haben, müssen Sie die Tabelle wp_options auswählen. Sie müssen zwei Zeilen suchen. template und Stylesheet .

 enter image description here 

Dann müssen Sie alexandria für youThemeName aktualisieren. Diese Abfrage sieht folgendermaßen aus:

$query = "UPDATE wp_options SET option_value='youThemeName' WHERE option_name='template' OR option_name='stylesheet';";
$wpdb->query($query);
1
Castiblanco