Hallo zusammen,
ich möchte globale Änderungen vornehmen und ein Seitentemplate bestimmten Seiten zuweisen. Wie bekomme ich das mit einem SQL-Befehl hin?
Vielen Dank für jeden guten Tipp!
Um schreiben oder kommentieren zu können, benötigen Sie ein Benutzerkonto.
Sie haben schon ein Benutzerkonto? Melden Sie sich hier an.
Jetzt anmeldenHier können Sie ein neues Benutzerkonto erstellen.
Neues Benutzerkonto erstellenHallo zusammen,
ich möchte globale Änderungen vornehmen und ein Seitentemplate bestimmten Seiten zuweisen. Wie bekomme ich das mit einem SQL-Befehl hin?
Vielen Dank für jeden guten Tipp!
Hallo!
Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.
Ein Seitentemplate brauchst du nicht über einen SQL Befehl zuweisen, das geht übers WP Backend: https://developer.wordpress.org/themes/templat…-for-global-use
Ein Seitentemplate brauchst du nicht über einen SQL Befehl zuweisen, das geht übers WP Backend: https://developer.wordpress.org/themes/templat…-for-global-use
Klar. Das weiß ich natürlich. Deshalb schrieb ich ja von globalen Änderungen.
Zur Verdeutlichung nochmal mein Vorhaben:
Für zahlreiche Seiten wurde zur Weiterleitung auf die erste Unterseite ein Plugin benutzt. Das Plugin konnte durch ein Seitentemplate ersetzt werden, welches bei neuen Seiten verwendet wird. Es ist aber mühsam, die alten Seiten jeweils manuell durch Aufruf und Ändern der Attribute im Editor anzupassen. In der Tabelle wp_postmeta werden einige Daten zum Template bzw. Weiterleitung reingeschrieben. Mit einem SQL-Befehl konnte ich die Weiterleitung auf die erste Unterseite durch das Template einstellen. Das funktioniert einwandfrei. Als "Schönheitsfehler" wird aber unter Template das Standardtemplate angezeigt. Hier hätte ich gerne mein spezielles Template zur Weiterleitung sichtbar.
Ich hoffe, es ist verständlich formuliert.
Mein Seitentemplate zur Weiterleitung heißt: page_redirect_first_child.php
Das bisherige Plugin fügte den Eintrag "_redirector" hinzu, womit ich die betreffenden Seiten erkennen kann.
Mit diesem Befehl
update wp_postmeta set meta_key = 'wp_page_template', meta_value = 'page_redirect_first_child.php' WHERE meta_key = '_redirector'
wurde das Seitentemplate zur Weiterleitung aktiviert. Wie o. g. steht leider unter Template das Standardtemplate drin.
Noch eine Idee?
Ich denke bei meta_value muss nur der Name des Templates rein, nicht der Name der Datei. Kannst du ja mal testen.
ZitatIch denke bei meta_value muss nur der Name des Templates rein, nicht der Name der Datei. Kannst du ja mal testen.
Funktioniert leider nicht. Wenn ich das Template manuell zuweise, steht in der Spalte "meta_value" der Wert "page_redirect_first_child.php" drin. Also muss dieser Wert auch in den SQL-Befehl rein.
spickzettel:
So beginnt die Template-Datei:
<?php
/*
Template Name: Auf erste Unterseite weiterleiten
...
ZitatAuch muss es meiner Meinung nach _wp_page_template heißen und nicht wp_page_template.
Das ist richtig; habe es mittlerweile auch bemerkt.
Mit dem geänderten Befehl
[URL="http://localhost:8080/us_opt1/url.php?url=http%3ANANNANdev.mysql.comNANdocNANrefmanNAN5.5NANenNAN%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20undefined.html"]update[/URL] wp_postmeta [URL="http://localhost:8080/us_opt1/url.php?url=http%3ANANNANdev.mysql.comNANdocNANrefmanNAN5.5NANenNAN%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20undefined.html"]set[/URL] meta_key = '_wp_page_template', meta_value = 'page_redirect_first_child.php' WHERE meta_key = '_redirector'
geht es leider auch nicht.
Auf dieser Seite kann das Template (am Ende der Seite) zum Testen heruntergeladen werden.
Bin ein Stück weiter gekommen. Es gibt in der DB ja mehrere Zeilen mit der gleichen post_id.
In der hier im Text weiter unten eingefügten Tabelle entspricht die zweite Spalte der post_id. Der Seite mit post_id=4 (blau) wurde das neue Template im Editor zugewiesen.
Für die Seite mit der post_id=6 (rot) steht die Zuweisung noch aus und soll mit einem SQL-Befehl erfolgen.
[COLOR=#0000ff]20 4 _redirector a:1:{s:4:"type";s:11:"first-child";}[/COLOR]
[COLOR=#ff0000]21 6 _redirector a:1:{s:4:"type";s:11:"first-child";}[/COLOR]
1 2 _wp_page_template default
[COLOR=#0000ff]4 4 _wp_page_template page_redirect_first_child.php[/COLOR]
[COLOR=#ff0000]7 6 _wp_page_template default[/COLOR]
10 8 _wp_page_template default
13 10 _wp_page_template default
Bedingung: [COLOR=#ff0000]6 _redirector
[/COLOR]Nach dem SQL-Befehl soll die Zeile so aussehen (Auszug): [COLOR=#ff0000] 6 _wp_page_template [/COLOR][COLOR=#ff0000]page_redirect_first_child.php
[/COLOR]Verbal beschrieben:
In Zeilen mit dem meta_key "_redirector" merke die post_id.
In Zeilen mit der GLEICHEN post_id UND meta_key=wp_page_template UND meta_value=default ersetze "default" durch " page_redirect_first_child.php".
Besser kann ich das Problem nicht beschreiben. Hat jemand dazu einen Lösungsansatz? Es müssten vermutlich mehrere Where-Bedingungen gelten. Die bisherige SQL-Anweisung ist dafür nicht geeignet.
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!