폼 7과 커스텀 투고 타입에 문의합니다.
Wordpress에서 7번 컨택 폼을 사용하여 주문 폼을 만들고 싶습니다.주문 폼의 내용을 커스텀 포스트 타입의 「trade Show Material」의 컨텐츠로 입력합니다.- 포스트 타입에는, 「name」 「number」 「description」 「 photo 」필드가 포함됩니다.각각의 작품을 양식에서 선택할 수 있다는 생각이 들 것입니다.누구라도 대략적인 방향을 제시해 주실 수 있나요?완전히 다른 플러그인을 사용해야 합니까?
아마 당신은 그것을 사용할 수 있을 것이다.wpcf7_form_tag
필터 훅을 사용합니다.
커스텀 투고 타입을 드롭다운 옵션(선택)으로 사용하고 싶은 경우는, 다음의 예를 기능에 추가할 수 있습니다.php:
function dynamic_field_values ( $tag, $unused ) {
if ( $tag['name'] != 'your-field-name' )
return $tag;
$args = array (
'numberposts' => -1,
'post_type' => 'your-custom-post-type',
'orderby' => 'title',
'order' => 'ASC',
);
$custom_posts = get_posts($args);
if ( ! $custom_posts )
return $tag;
foreach ( $custom_posts as $custom_post ) {
$tag['raw_values'][] = $custom_post->post_title;
$tag['values'][] = $custom_post->post_title;
$tag['labels'][] = $custom_post->post_title;
}
return $tag;
}
add_filter( 'wpcf7_form_tag', 'dynamic_field_values', 10, 2);
폼에서 필드를 추가할 수 있습니다.
[select* your-field-name include_blank]
위의 예에서는 post_title이 드롭다운 옵션에서 사용됩니다.여기에 자신의 필드(이름, 번호, 설명, 사진)를 추가할 수 있습니다.
wpcf7_form_tag는 이전 그의 훌륭한 답변에서 보여준 것과 같은 방식으로 동작한다고 생각하지 않습니다.2015년 이후로 바뀌었을 수도 있어요.
wpcf7_form_tag를 사용하는 방법에 대해서는, 여기를 참조해 주세요.
연락처 폼7의 다른 투고와 함께 https://contactform7.com/2015/02/27/using-values-from-a-form-tag/ #more-13351을 참조해 주십시오.
가지고 있는 커스텀 투고 타입의 커스텀드롭다운 리스트를 작성하기 위해서, 이 코드를 생각해 냈습니다.
add_action('wpcf7_init', 'custom_add_form_tag_customlist');
function custom_add_form_tag_customlist() {
wpcf7_add_form_tag( array( 'customlist', 'customlist*' ),
'custom_customlist_form_tag_handler', true );
}
function custom_customlist_form_tag_handler( $tag ) {
$tag = new WPCF7_FormTag( $tag );
if ( empty( $tag->name ) ) {
return '';
}
$customlist = '';
$query = new WP_Query(array(
'post_type' => 'CUSTOM POST TYPE HERE',
'post_status' => 'publish',
'posts_per_page' => -1,
'orderby' => 'title',
'order' => 'ASC',
));
while ($query->have_posts()) {
$query->the_post();
$post_title = get_the_title();
$customlist .= sprintf( '<option value="%1$s">%2$s</option>',
esc_html( $post_title ), esc_html( $post_title ) );
}
wp_reset_query();
$customlist = sprintf(
'<select name="%1$s" id="%2$s">%3$s</select>', $tag->name,
$tag->name . '-options',
$customlist );
return $customlist;
}
그럼 7번 양식에 있는 태그를 이렇게 사용하시면 됩니다.
[customlist your-field-name]
이게 나처럼 이걸 할 방법을 찾고 있던 다른 누군가에게 도움이 됐으면 좋겠어.
커스텀 투고 타입으로부터 필요한 정보를 취득하도록 변경할 수 있습니다.
그러나 그것은 어떠한 검증도 하지 않았다.
Clyde Thomas 코드는 여전히 잘 작동합니다, 감사합니다!
제 경우 투고 대신 플러그인에서 데이터가 필요하기 때문에 WP_query를 삭제하고 코드를 수정했습니다.
global $wpdb;
$result = $wpdb->get_results("SELECT title FROM wp_asl_stores ORDER BY title ASC ");
foreach($result as $row) {
$customlist .= sprintf( '<option value="%1$s">%2$s</option>',
esc_html( $row->title ), esc_html( $row->title ) );
}
언급URL : https://stackoverflow.com/questions/27867260/contact-form-7-and-custom-post-type
'source' 카테고리의 다른 글
스프링 파일 업로드 - MultipartHttpServletRequest 가져오기: MultipartResolver가 구성되어 있습니까?에러 (0) | 2023.03.26 |
---|---|
요소 외부를 클릭할 때 이벤트를 발생시키는 지시어 (0) | 2023.03.26 |
django 테스트클라이언트를 사용한JSON 전송 (0) | 2023.03.26 |
커스텀 투고 타입의 연간/월간 아카이브 (0) | 2023.03.26 |
Node.js 및 MongoDB를 사용한 비밀번호 저장 (0) | 2023.03.26 |