WordPress.org

Ready to get started?Download WordPress

Forums

Contact Form 7
他のショートコードを使うには2 (1 post)

  1. kimipooh
    Member
    Posted 10 months ago #

    http://ja.forums.wordpress.org/topic/11805?replies=1

    で質問したままになっておりました(済みません)。

    wpcf7_form_elements フックで実現可能ということでしたが、したいことについて出来なかったのでタイトルにプラグイン名を入れて、追加質問になります。

    まず、wpcf7_form_elementsフィックを使えば、他のショートコード(WordPressが認識できる)を展開することは可能です。
    ただ下記が出来ません。

    1. TablePressプラグインのテーブル内にContact Form 7専用のショートコードを入れる([text hogehoge]等)
    2. Contact Form 7に [table id=1/]など、テーブルブラグインのショートコードを入れる

    とすると、固定ページ等に[contact-form-7 id= ….]を入れた際には、
    [table id=1/]がでます(通常動作)

    ここで、wpcf7_form_elements フィックを使います。

    function wpcf7_add_other_shortcodes( $content ) {
    	if (empty($content)) return '';
    	$content = do_shortcode($content);
    	return $content;
    }
    add_filter('wpcf7_form_elements', 'wpcf7_add_other_shortcodes');

    すると、[table id=1/]が展開されます。

    ただし展開された先に入れ込んだ、Contact Form 7のショートコード([text]等)は展開されません。この[text]を展開したいということなのです。

    includes/shortcode.phpの

    function do_shortcode( $content, $exec = true ) {
    		$this->exec = (bool) $exec;
    		$this->scanned_tags = array();

    の直下に

    $content = do_shortcode($content);

    を入れることで実装しています。

    つまり、Contact Form 7独自のショートコードが、do_shortcode_tagsメソッドで展開される前に、WordPressのショートコードの展開がされれば、うまく動くということの実装になっていると思います。

    これについてはフックが用意されていないかなと思い、質問しました。

    https://wordpress.org/plugins/contact-form-7/

Reply

You must log in to post.

About this Plugin

About this Topic