Wie kann ich unterstützen, dass Benutzer ihr EIGENES Logo zu einem benutzerdefinierten Thema hinzufügen?

Ich bin ein Rookie Theme Entwickler (3 Monate in) und ich versuche herauszufinden, wie man die folgende functionalität implementiert:

  1. Das Thema, das ich erstelle, hat ein Logo, das ich gerne ändern möchte.
  2. Ich möchte, dass sie das NICHT im Code tun müssen.
  3. Vielmehr möchte ich eine Art von Low-Tech- “Theme Control Panel” oder etwas ähnliches entwickeln, wo sie das Logo zur Kopfzeile hinzufügen können.

Hier ist ein Screenshot, damit Sie klarer sehen können, was ich zu tun versuche.

Ich verwende den Theme-Check, der mir gerade sagt:

EMPFOHLEN: Im Thema wurde kein Verweis auf add_custom_image_header gefunden. Es wird empfohlen, dass das Thema diese functionalität implementiert, wenn ein Bild für den Header verwendet wird.

Aber ich glaube nicht, dass dies auf mein Thema zutrifft, da ich NICHT den GESAMTEN Header für ein Bild verwende. Vielmehr wird nur eine Portion für das Logo verwendet (plus ist absolut positioniert).

Gibt es also ein Template-Tag, das dies erreichen kann? Cuz, ich kann es sicherlich nicht im Codex finden.

Vielen Dank im Voraus, Schläfer

Solutions Collecting From Web of "Wie kann ich unterstützen, dass Benutzer ihr EIGENES Logo zu einem benutzerdefinierten Thema hinzufügen?"

Sie können eine grundlegende Themenoptionen-Seite mit den WordPress Einstellungen API erstellen

Hier ist ein einfaches Beispiel, das ein Eingabefeld für den Benutzer erstellen wird, um einen Pfad zu dem benutzerdefinierten Logo einzugeben.

// Add a menu for our option page add_action('admin_menu', 'prefix_myplugin_add_page'); function prefix_myplugin_add_page() { add_options_page( 'My Theme Options', 'Theme Name Options', 'manage_options', 'prefix_mytheme', 'prefix_myplugin_option_page' ); } // Draw the option page function prefix_mytheme_option_page() { ?> 

Really Simple Google Analytics

< ?php settings_fields( 'prefix_mytheme_options' ); ?> < ?php do_settings_sections( 'prefix_mytheme' ); ?>
< ?php } // Register and define the settings add_action( 'admin_init', 'prefix_mytheme_admin_init' ); function prefix_mytheme_admin_init(){ register_setting( 'prefix_mytheme_options', 'prefix_mytheme_options' ); add_settings_section( 'prefix_mytheme_main', 'prefix_mytheme_options', 'prefix_mytheme_section_text', 'prefix_mytheme' ); add_settings_field( 'prefix_mytheme_text_string', 'Enter text here', 'prefix_mytheme_setting_input', 'prefix_mytheme', 'prefix_mytheme_main' ); } // Draw the section header function prefix_mytheme_section_text() { echo '

Enter path to custom logo.'; } // Display and fill the form field function prefix_mytheme_setting_input() { // get option 'text_string' value from the database $options = get_option( 'prefix_mytheme_options' ); $text_string = $options['text_string']; // echo the field echo ""; }

Aufruf der benutzerdefinierten Logo-Option in Ihrer Datei header.php:

 $options = get_option( 'prefix_mytheme_options' ); if ( ! empty( $options['text_string'] ) ) { $logo = $options['text_string']; } else { $logo = 'http://path_to_default_logo'; } 

Ich habe gerade dieses My Options Panel ein paar Stunden veröffentlicht, das euch die Frage beantworten wird.

Selbst wenn Ihr Bild nicht den typischen Bereich voller Breite abdeckt, den Sie in den 20ten und 20ten Jahren sehen, ist add_custom_image_header der geeignete Weg, um dies zu tun, und es ist viel einfacher, die integrierte functionalität zu verwenden als neue Optionen zu erstellen Panel, um es zu handhaben.

Bei der Deklaration von Unterstützung für benutzerdefinierte Header definieren Sie die Höhe und Breite Ihres Bildes. Sie steuern auch den Code, in dem Sie ihn ausgegeben haben, einschließlich der Position, die Sie für die Positionierung verwenden möchten. Es gibt also wirklich keinen Grund, Ihren Designgedanken auf einen vollständigen Header zu beschränken.