comment_form() unter WP3.0 konfigurieren? Hook funktioniert nicht

  • Moin,

    ich bastel gerade an der "neuen" comment_form() Funktion herum, und würde gern die WP-Standards ändern.

    Die Doku bei WordPress.org ist diesmal leider nicht sehr hilfreich.. :-?

    Ich bin jetzt an dem Punkt, an dem ich meine ersten Änderungen getätigt habe, und versuche das ganze via Filter und Hook auszugeben - und das klappt irgendwie nicht.

    Bisher habe ich für die Felder;
    in der functions.php

    und für das Formular;

    Leider wird my_comment_form nicht angezeigt - immer das WP-Standard Formular. Zudem hagelt es PHP-Warnings bei eingeschaltetem debug-mode.

    Ein wenig Hilfe fand ich hier, aber irgendwie komme ich gerade nicht weiter...

    Danke schon mal vorab! ;)

    Thomas

    • Anzeige

    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.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • fast gelöst

    Moin nochmal,

    ich habe es nun zumindest geschafft, dass die Änderungen angezeigt werden. Allerdings quäle ich mich nun mit etlichen PHP-Warnings wie;

    Code
    Notice: Undefined variable: aria_req in D:\xampp\htdocs\wordpress\wp-content\themes\testtheme\functions.php on line 358

    u.s.w.

    Sind diese Variablen nicht schon in der comment-template.php definiert? Muss ich all diese Variablen und ID´s noch einmal seperat definieren? Oder gibt es einen einfacheren Weg bspw. via global oder so... :roll:

    Danke vorab!
    Thomas

  • Ja, du mußt die Variablen selbst erstellen, die du brauchst. Das [FONT="Courier New"]required[/FONT] beispielsweise befüllst du aus [FONT="Courier New"]get_option( 'require_name_email' )[/FONT].

    Hier mal ein sehr einfaches Beispiel dafür, wie man das Formular objektorientiert umrüstet und die Textarea nach oben stellt. Vielleicht inspiriert dich das:

    Datei class.TTT_Comment_Form.php:

    Alles nicht gut dokumentiert, aber der Code sollte »sprechend« genug sein. ;)

    Ich habe in der single.php dem Kommentar-Template eine Action vorangestellt:

    PHP
    <?php
        do_action('load_comment_class');
        comments_template();

    Die könnte man auch je nach Template mit einer eigenen Konfiguration aufrufen:

    PHP
    <?php
        do_action('load_comment_class', array (
            'textarea_first' => FALSE ));
        comments_template();

    In der functions.php habe ich diese Aktion definiert, damit die Klasse wirklich nur dann geladen wird, wenn ich sie brauche:

    PHP
    <?php
    add_action('load_comment_class', 'load_comment_class', 10, 1);
    function load_comment_class( $options = array ( ) )
    {
        require_once dirname(__FILE__) . DIRECTORY_SEPARATOR
        . 'ttt' . DIRECTORY_SEPARATOR . 'class.TTT_Comment_Form.php';
        new TTT_Comment_Form( (array) $options);
    }

    Sieht vielleicht erstmal etwas umständlich aus, aber wenn es einmal läuft, dann ist es umso bequemer. :)

    Die Seite, für die ich das geschrieben habe, ist noch nicht frei zugänglich. Bei Interesse trage ich das später gerne nach.

  • Das nenne ich mal eine umfassende Antwort! :lol: Tausend Dank!

    Zitat von toscho

    Ja, du mußt die Variablen selbst erstellen, die du brauchst. Das [FONT=Courier New]required[/FONT] beispielsweise befüllst du aus [FONT=Courier New]get_option( 'require_name_email' )[/FONT].


    Danke! Damit hast du meine Frage eigentlich schon beantwortet! ;)

    Der Code wird mich mit Sicherheit für zukünftige "Projekte" inspirieren. Hab die Seite gleich mal gebookmarkt.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!