Wie verwende ich andere Shortcodes in Kontaktformular 7-Formularen? [geschlossen]

15

Ich habe festgestellt, dass ein Shortcode, der nicht Teil des in 7 eingebauten Shortcodes des Kontaktformulars ist, nicht funktioniert.

Beispiel: Ich versuche, einen Akkordeon-Shortcode zwischen Formularelementen in Kontaktformular 7 zu verwenden. Der Code funktioniert jedoch nicht.

Wie kann man das lösen, ohne die Kerndateien von Contact Form 7 zu bearbeiten?

Alhoseany
quelle
Ich bin mir nicht sicher, ob du das kannst. Shortcodes müssen sich auf einer Seite oder in einem Beitrag befinden, nicht wahr? Ich glaube nicht, dass Sie einen Shortcode zwischen Formularelementen einfügen können. Wo würdest du sie hinstellen? ... im Kontaktformular 7 Einstellungen? Sie können das nicht dort AFAIK tun (es sei denn, Sie folgen einer Kontaktformular 7 Anleitung, von der ich noch nichts gehört habe).
Byronyasgur

Antworten:

21

Es gibt zwei Möglichkeiten, um das zu tun, was Sie wollen. Der erste Weg ist, diesen Code in die Datei functions.php des Contact Form 7-Plugins einzufügen:

add_filter( 'wpcf7_form_elements', 'mycustom_wpcf7_form_elements' );

function mycustom_wpcf7_form_elements( $form ) {
$form = do_shortcode( $form );

return $form;
}

So können Sie Shortcodes direkt in CF7 ablegen. Zweitens muss das Akkordeon manuell mit HTML in das Kontaktformular eingefügt werden:

<!-- begin class .wp-accordion -->
<div class="wp-accordion wpui-light">

    <!-- First tab's panel -->
    <h3 class="wp-tab-title">Tab 1</h3>
    <!-- First tab's contents -->
    <div class="wp-tab-content">
          All the contents of first tab goes here....
    </div><!-- end first tab -->

      <!-- Like so, Second panel -->
      <h3 class="wp-tab-title">Tab 2</h3>
      <div class="wp-tab-content">
            Contents of the second tab
       </div>

</div><!-- end class wp-accordion -->

Ich denke, die zweite Methode ist vorzuziehen, da die Kern-Plugin-Dateien nicht geändert werden. Ich hoffe das hilft!

SickHippie
quelle
4
Tatsächlich - Sie können den Filtercode in die functions.php Ihres Themas einfügen, und Shortcodes funktionieren ordnungsgemäß in einem CF7-Formular. Ich kann nicht bestätigen, ob das spezielle (für das Akkordeon) funktioniert oder nicht - ich habe nur mit einem Shortcode getestet, der keine CF7-Shortcodes enthält, aber im Grunde hängt alles davon ab, wie mit dem fraglichen Shortcode umgegangen wird .
Nikola Ivanov Nikolov
10
in der Tat add_filter( 'wpcf7_form_elements', 'do_shortcode' );erledigt ein einfacher den Trick aus den Funktionen meines Kinderthemas.php.
Evan Mattson
1
Wenn Sie denselben Inhalt an mehreren Stellen auf Ihrer Site verwenden möchten, sollten Sie einen Shortcode erstellen (der bei Bedarf lokalisiert werden kann), anstatt überall denselben HTML-Code auszuschneiden und einzufügen.
Craig