Wordpress 연락처 양식 7 사용자 지정 쇼트 코드
연락처 양식 7에는 [_date]와 같은 짧은 코드가 있습니다.하지만 일주일 후 날짜를 표시하고 싶습니다.
따라서 [next_week]라고 하는 커스텀 쇼트 코드를 Contact 폼7에 작성하고 수신한 이메일에 올바른 날짜가 표시됩니다.
연락처 양식 7의 커스텀 쇼트 코드를 작성하려면 어디서 어떻게 해야 합니까?
기능에 다음 항목을 추가합니다.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;
}
CF7 GUI 타입의 [Form]필드에서[custom_date next_week]
이제 사용할 수 있습니다.[next_week]
메시지 본문에 있습니다.
이것은 응답 파티에는 조금 늦었지만, 나는 나의 양식과 메시지 본문에 커스텀 쇼트 코드를 추가하고 싶을 때 이 게시물을 계속 본다.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;
}
CF7에는 폼태그(연락처 폼 자체)와 메일태그(이메일)의 2종류의 태그가 있습니다.자세한 것은 이쪽입니다.
사용자 정의 양식 태그:
사용할 수 있는 사용자 정의 양식 태그를 추가하려면
wpcf7_add_form_tag()
에서 기능하다.wpcf7_init
액션 훅(자세한 내용은 참조).그
wpcf7_add_shortcode()
승인된 답변의 함수는 폐지되고 이 함수로 대체되는 것으로 간주됩니다.사용자 정의 메일 태그:
커스텀 메일 태그를 추가할 수 있는 기본 제공 기능을 찾을 수 없습니다.다만, 다음의 몇개의 회피책이 있습니다.
커스텀 쇼트 코드를 유효하게 합니다(숏 코드 핸들러를 미리 작성하는 것을 잊지 말아 주세요).
- DACrosby의 답변에 따르면 메일 구성요소의 경우.
- 전체 메일(모든 구성요소), 사용
wpcf7_special_mail_tags
필터:
function my_special_mail_tag( $output, $name, $html ) { if ( 'myshortcode' === $name ) { $output = do_shortcode( "[$name]" ); } return $output; } add_filter( 'wpcf7_special_mail_tags', 'my_special_mail_tag', 10, 3 );
- 미리 채워진 데이터가 있는 사용자 정의 숨김 양식 태그를 양식에 추가한 후 메일에 사용합니다.
[my-custom-form-tag-with-some-prepopulated-data]
; 커스텀 폼태그는wpcf7_add_form_tag()
를 참조해 주세요.
저의 해결책은 간단합니다.원하는 단축코드를 사용하여 연락처 양식 영역에 배치합니다.다음 코드만 함수에 배치하는 것을 잊지 마십시오.php 그러면 쇼트코드가 동작합니다.
add_filter('wpcf7_form_filter', 'do_shortcode');
지금까지 해본 적은 없지만, 쇼트 코드는 워드프레스 자체(CF7 등의 플러그인이라도)로 관리할 수 있다고 생각합니다.
간단한 쇼트 코드를 작성하는 예를 다음에 나타냅니다.
//[foobar]
function foobar_func( $atts ){
return "foo and bar";
}
add_shortcode( 'foobar', 'foobar_func' );
functions.php에 배치됩니다.
상세한 것에 대하여는, http://codex.wordpress.org/Shortcode_API 를 참조해 주세요.
또는 다음과 같은 플러그인을 사용하여 작업을 수행할 수 있습니다.http://wordpress.org/extend/plugins/shortbus/
언급URL : https://stackoverflow.com/questions/13179355/wordpress-contact-form-7-custom-shortcodes
'programing' 카테고리의 다른 글
TypeError: b'1'은 JSON을 직렬화할 수 없습니다. (0) | 2023.03.19 |
---|---|
Json allowget 오류 (0) | 2023.03.19 |
nodejs mongodb 객체 ID에서 문자열로 (0) | 2023.03.19 |
wp_nav_menu에 커스텀 HTML을 추가하는 방법 (0) | 2023.03.19 |
PHP를 사용하여 바코드를 생성하고 동일한 페이지에 이미지로 표시하는 방법 (0) | 2023.03.19 |