Hallo zusammen,
ich stehe vor einem Problem, wo ich als php-Neuling momentan nicht weiterkomme: ich verwende das Hashone-Theme, das hat einige Sections auf der Startseite, die über den Customizer gesteuert werden können. Ich möchte die Contact-Section duplizieren und beide über den Customizer steuern. Der Hintergrund ist, dass ich ein Multilanguage Plugin laufen habe, worüber ich im Customizer die Felder direkt entsprechend der gewählten Sprache eintragen kann.
Mein Ansatz ist kurz gesagt, die Section im Code zu duplizieren und anders benennen, damit die sich nicht in die Quere kommen. Also habe ich mich auf die Suche nach den Files gemacht und folgendes gemacht:
- hashone/inc/customizer.php:
/*============CONTACT SECTION============*/
$wp_customize->add_section(
'hashone_contact_sec',
array(
'title' => __( 'Contact Section', 'hashone' ),
'panel' => 'hashone_home_panel'
)
);
$wp_customize->add_setting(
'hashone_disable_contact_sec',
array(
'default' => 'off',
'sanitize_callback' => 'hashone_sanitize_text',
'transport' => 'postMessage'
)
);
Alles anzeigen
Hier habe ich für alle Variablen und Funktionen kopiert und umbenannt. Aus dem Beispiel oben wird:
/*============CONTACT 2 SECTION============*/
$wp_customize->add_section(
'hashone_contact2_sec',
array(
'title' => __( 'Contact Section 2', 'hashone' ),
'panel' => 'hashone_home_panel'
)
);
$wp_customize->add_setting(
'hashone_disable_contact2_sec',
array(
'default' => 'off',
'sanitize_callback' => 'hashone_sanitize_text',
'transport' => 'postMessage'
)
);
Alles anzeigen
- inc/js/customizer-scripts.js: case kopiert und neu benannt
function scrollToSection( section_id ){
var preview_section_id = "hs-home-slider-section";
var $contents = jQuery('#customize-preview iframe').contents();
switch ( section_id ) { case 'accordion-section-hashone_contact_sec':
preview_section_id = "hs-contact-section";
break;
case 'accordion-section-hashone_contact2_sec':
preview_section_id = "hs-contact2-section";
break;
}
Alles anzeigen
Soweit bin ich, folgender Fehler kam:
Fatal error: Call to a member function add_section() on null in /hashone/inc/customizer.php on line 2561
Die Zeile, die den Fehler macht ist die Zeile der ersten Funktion der kopierten Contact-Section:
$wp_customize->add_section(
'hashone_contact2_sec',
array(
'title' => __( 'Contact Section 2', 'hashone' ),
'panel' => 'hashone_home_panel'
)
);
So wie ich das verstehe, ist die Variable nicht initialisiert, ist das richtig?
Ist der Weg, den ich mir vorstelle zielführend oder was kommen noch für Schwierigkeiten auf mich zu?
Hoffe mir kann jemand helfen ;)