Schwerwiegender Fehler: Klasse „WP_Customize_Control“ nicht gefunden – WordPress

Lesezeit: 2 Minuten

Ich baue mein eigenes Wordperss-Thema und als ich mit dem WordPress Customizer für Themenoptionen anfange, bin ich in ein wenig Schwierigkeiten geraten.

Grundsätzlich versuche ich, einen Textbereich zu erstellen, und was ich gelesen habe, muss ich eine erweiterte Klasse erstellen und sie dann unter der Funktion add_control von WordPress aufrufen.

Ich habe dies ausprobiert und alles funktioniert gut im Customizer-Modus, aber sobald ich einen anderen Teil der Site betrete, erhalte ich diese Fehlermeldung:

Schwerwiegender Fehler: Klasse ‘WP_Customize_Control’ nicht gefunden

Wie gesagt, es funktioniert zu 100% im Customizer selbst, aber auf jeder anderen Seite, einschließlich Admin, erhalte ich diese Meldung.

Hier ist die Klasse:

class ublxlportfolio_textarea extends WP_Customize_Control {
    public $type="textarea";

    public function render_content() {
        ?>
        <label>
        <span class="customize-control-title"><?php echo esc_html( $this->label ); ?></span>
        <textarea rows="5" style="width:100%;" <?php $this->link(); ?>><?php echo esc_textarea( $this->value() ); ?></textarea>
        </label>
        <?php
    }
}

Muss ich es in ein bedingtes Tag einschließen? Wenn ja was wäre das??

Mache ich das alles falsch?

Um die richtige Antwort von @ Robert zu verdeutlichen:

Die Klasse WP_Customize_Control wird nur geladen, wenn der Theme Customizer tatsächlich verwendet wird. Sie müssen also Ihre Klasse innerhalb der Funktion „binden“ an die Aktion „customize_register“ definieren.

Beispiel:

add_action( 'customize_register', 'my_customize_register' );

function my_customize_register($wp_customize) {

  //class definition must be within my_customie_register function
  class ublxlportfolio_textarea extends WP_Customize_Control { ... }

  //other stuff
}

  • Stellen Sie einfach sicher, dass Sie Ihr benutzerdefiniertes Steuerelement hinzufügen, BEVOR Sie versuchen, es zu verwenden. Ich habe diesen Fehler gemacht und musste facepalm sobald ich meine Dummheit herausgefunden habe.

    – Eric K

    27. Februar 2015 um 18:54 Uhr

  • In der Tat. Dies ist der richtige Weg zur Implementierung.

    – Shiva Acharjee

    16. Mai 2018 um 15:49 Uhr

Benutzer-Avatar
KommCaramelos

Sie benötigen die folgende Zeile vor der Klassendefinition:

include_once ABSPATH . 'wp-includes/class-wp-customize-control.php';

Ich hatte das gleiche Problem und bin hier von Google gelandet, hoffe, das hilft jemandem!

Herausgefunden, dass die Klasse in die Registerfunktion kommen muss!

Erinnerung: Falls Sie beim Erweitern vergessen haben, zu überprüfen, ob die Klasse WP_Customize_Control vorhanden ist oder nicht. Diese Erinnerung kann Ihnen helfen, dieses Problem zu beheben, wenn Sie sich auf der Seite befinden, auf der der Design-Anpasser nicht verwendet wird; Da die Klasse WP_Customize_Control nur geladen wird, wenn der Theme Customizer tatsächlich verwendet wird.

if (class_exists('WP_Customize_Control')) {
    class yourCustomControlClass extends WP_Customize_Control {
       // control actions
    }
}

Prost!

1365680cookie-checkSchwerwiegender Fehler: Klasse „WP_Customize_Control“ nicht gefunden – WordPress

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy