2012-11-01 21 views
6

お問い合わせフォーム7には[_日付]のようないくつかのショートコードがあります。しかし、私は今から1週間後の日付を表示したい。Wordpressお問い合わせフォーム7カスタムショートコード

私は連絡先フォーム7に[next_week]と書かれたカスタムショートコードを作成する必要があり、受け取ったメールには正しい日付が表示されます。

コンタクトフォーム7にカスタムショートコードを作成するにはどうしたらいいですか?

答えて

13

はあなたのfunctions.phpで今

wpcf7_add_shortcode('custom_date', 'wpcf7_custom_date_shortcode_handler', true); 

function wpcf7_custom_date_shortcode_handler($tag) { 
    if (!is_array($tag)) return ''; 

    $name = $tag['name']; 
    if (empty($name)) return ''; 

    $next_week = date('Y-m-d', time() + (60*60*24*7)); 
    $html = '<input type="hidden" name="' . $name . '" value="' . $next_week . '" />'; 
    return $html; 
} 

」に以下を追加します。あなたが仕事をしている。このようにプラグインを使用することができますhttp://codex.wordpress.org/Shortcode_API

または:詳細については

CF7 GUIタイプの「フォーム」フィールド[custom_date next_week]

今では[next_week]を混乱させることができます年齢

+1

私のニーズにはもっと簡単なバージョンを使います: 'wpcf7_add_shortcode( 'input_name'、function($ tag){return ' '}); ' – vladkras

0

私はこれまでにしていませんが、ショートコードはwordpressによって管理されていると思います(CF7のようなプラグインの場合でも)。

シンプルなショートを作成する例を示します。

のfunctions.phpに置か
//[foobar] 
function foobar_func($atts){ 
return "foo and bar"; 
} 
add_shortcode('foobar', 'foobar_func'); 

http://wordpress.org/extend/plugins/shortbus/

+1

CF7 [foobarに]、投稿やページは、 "fooとbar" を印刷出力します。それはうまくいかなかった。 – halliewuud

+0

フォームでショートコードを使用したいが、送信された電子メールでは機能しません。正しい解決策を私の答えにしてください – halliewuud

0

これは返信先に少し遅れていますが、自分のフォームとメッセージ本文にカスタムショートコードを追加する場合は、この投稿が表示され続けます。ショートカットを挿入するには、CF7で特別なものを登録せずに、しばしばメッセージ本体にしか挿入しないようにしたかったのです(CF7はできないようです)。

は、ここで私は最終的にそれをやった方法は次のとおりです。

// Allow custom shortcodes in CF7 HTML form 
add_filter('wpcf7_form_elements', 'dacrosby_do_shortcodes_wpcf7_form'); 
function dacrosby_do_shortcodes_wpcf7_form($form) { 
    $form = do_shortcode($form); 
    return $form; 
} 

// Allow custom shortcodes in CF7 mailed message body 
add_filter('wpcf7_mail_components', 'dacrosby_do_shortcodes_wpcf7_mail_body', 10, 2); 
function dacrosby_do_shortcodes_wpcf7_mail_body($components, $number) { 
    $components['body'] = do_shortcode($components['body']); 
    return $components; 
}; 

// Add shortcode normally as per WordPress API 
add_shortcode('my_code', 'my_code_callback'); 
function my_code_callback($atts){ 
    extract(shortcode_atts(array(
     'foo' => 'bar' 
    ), $atts)); 

    // do things 
    return $foo; 
} 
関連する問題