Behalten Sie das Header-Bild beim Ändern des Themas

Wir haben ein Setup, bei dem Blogger ihr Thema ändern können und werden. Ist es möglich, das vorhandene Header-Image zum neuen Thema zu migrieren? Ich weiß, wie man das Headerbild mit dem add_filter überschreibt, weiß auch, wie man das gegenwärtige Headerbild erhält. Das Problem besteht darin, das Header-Bild beim Ändern des Designs beizubehalten. Ist das möglich ?

Solutions Collecting From Web of "Behalten Sie das Header-Bild beim Ändern des Themas"

Hier kommen die zu rettenden Plugins, verschiebe diesen Code in ein Plugin und aktiviere. Das ändert nicht das Headerbild bei jeder Änderung des Themas.

Z.B –

< ?php /* Plugin Name: keep header always */ // Your code to keep header image ?> 

Speichern Sie es als whatever-foo.php in das /wp-content/plugins/ Verzeichnis und aktivieren Sie es

Das Header-Bild wird per …

 set_theme_mod( 'header_image', $choice['url'] ) 

… ein Wrapper für …

 update_option( 'theme_mods_' . get_option( 'stylesheet' ), $value ); 

So können Sie in … einhaken

 'pre_update_option_theme_mods_' . get_option( 'stylesheet' ) 

… nimm den ersten Parameter, der ein Array aller Themen-Mods ist, und speichere den Wert des Schlüssels 'header_image' in einer Plugin-Option. Der Schlüssel 'header_image_data' speichert die Metadaten für dieses Bild.

Dann filtern Sie 'theme_mod_header_image' , um Ihre gespeicherte Plugin-Option zurückzugeben, wenn kein Bild gesetzt ist.

Wir haben ein kleines mu-plugin gemacht, das unser Problem getriggers hat.

Hier ist der Code

 add_action('pre_update_option_stylesheet', 'phi_pre_update_option_stylesheet'); add_action('switch_theme', 'phi_switch_theme'); function phi_pre_update_option_stylesheet($stylesheet) { update_option('previous_header_image_saved', get_theme_mod('header_image')); return $stylesheet; } function phi_switch_theme() { if (get_option('previous_header_image_saved')) { set_theme_mod('header_image', get_option('previous_header_image_saved')); delete_option('previous_header_image_saved'); } }