필드 수를 알 수 없는 포스트 메타 삭제 및 추가
이런 밭이 있는데...
<input type="text" name="summary" value="" required />
...이것으로 쉽게_text_field와 add_post_meta를 삭제할 수 있습니다.
$summary = sanitize_text_field($_POST["summary"]);
add_post_meta( $post_id, 'summary', $summary);
그러나 DB에 저장해야 하는 추가 post_meta에 대해서는 양식에 몇 개의 필드가 추가될지 모르기 때문에 어떻게 해야 할지 모르겠습니다.그것은 다양할 것이다.
따라서 추가 양식 필드는 다음과 같습니다.
<input type="text" name="cat_01" value="" />
<input type="number" name="dog_01" value="" />
<input type="number" name="rabbit_01" value="" />
<input type="text" name="mouse_01" value="" />
<input type="text" name="cat_02" value="" />
<input type="number" name="dog_02" value="" />
<input type="number" name="rabbit_02" value="" />
<input type="text" name="mouse_02" value="" />
...그런데 3번째 필드 세트나 4번째 필드 등이 있을 수 있습니다.제한이 전혀 없습니다.이러한 필드 세트가 몇 개일지는 모릅니다.
예를 들어, 세 번째 필드 세트가 있는 경우 다음과 같습니다.
<input type="text" name="cat_03" value="" />
<input type="number" name="dog_03" value="" />
<input type="number" name="rabbit_03" value="" />
<input type="text" name="mouse_03" value="" />
무슨 말인지 아시겠죠?
캡처할 내용이 불분명한 경우 어떻게 검사하고_post_meta를 추가할 수 있습니까?
건배.
다음과 같은 방법으로 모든 데이터를 쉽게 저장할 수 있습니다.
<!-- With type -->
<input type="text" name="animal[dog][]" value=""/>
<input type="text" name="animal[cat][]" value="" />
<!-- No Type -->
<input type="text" name="animal[]" value="" />
무슨 말인지 아시겠죠?
백엔드에서 다음 필드를 가져올 수 있습니다.
if( isset( $_POST['animal'] ) ) {
$sanitized_array = array();
foreach( $_POST['animal'] as $type ) {
if( is_array( $type ) ) {
// This is a type, let's go over that
// If it does not exist, create it
if( ! isset( $sanitized_array[ $type ] ) ) {
$sanitized_array[ $type ] = array();
}
foreach( $type as $value ) {
$sanitized_array[ $type ][] = sanitize_text_field( $value );
}
} else {
// It is not an array, so it's a value instead
$sanitized_array[] = sanitize_text_field( $value );
}
}
// We have our sanitized array, let's save it:
update_post_meta( $post_id, 'animal', $sanitized_array );
}
이는 필드가 동적으로 처리되고 얼마나 많은 비용을 절감해야 할지 모르는 상황에서 이미 제가 작성한 것과 유사합니다.
이것이 그것을 만드는 방법에 대한 가이드가 되었으면 합니다.
사용할 수 있습니다.foreach임의의 수의 필드를 반복할 수 있습니다.예:
foreach($_POST as $name=>$value){
$sanitizedValue = sanitize_text_field($value);
add_post_meta($post_id, $name, $sanitizedValue);
}
아래 코드에서는 동물 세트를 사용할 때까지 넣을 수 있는 제한치 4의 배열을 선택했습니다.그런 다음 어떤 것이 게시되었는지 확인하고 해당 게시 변수를 분석합니다.
$sanited_array = array();
for($i = 1 ; $i < 4 ; $i++)
{
if(isset($_POST['cat_0'.$i]))
{
$sanited_array['cat'][] = sanitize_text_field($_POST['cat_0'.$i]);
}
if(isset($_POST['dog_0'.$i]))
{
$sanited_array['dog'][] = sanitize_text_field($_POST['dog_0'.$i]);
}
if(isset($_POST['rabbit_0'.$i]))
{
$sanited_array['rabbit'][] = sanitize_text_field($_POST['rabbit_0'.$i]);
}
if(isset($_POST['mouse_0'.$i]))
{
$sanited_array['mouse'][] = sanitize_text_field($_POST['mouse_0'.$i]);
}
}
update_post_meta( $post_id, 'animal', $sanited_array );
언급URL : https://stackoverflow.com/questions/42638793/sanitising-and-adding-post-meta-with-unknown-number-of-fields
'programing' 카테고리의 다른 글
| HTML 코드를 Wordpress로 표시할 수 있습니까? (0) | 2023.02.07 |
|---|---|
| WordPress에서 Yoast seo 플러그인을 통해 기본 카테고리를 설정하는 방법 (0) | 2023.02.07 |
| WordPress 3.5 미디어 업로더 다중 파일 선택 (0) | 2023.02.07 |
| WP Rest API + 각도JS : 페이지에 표시할 Feature Image를 캡처하는 방법 (0) | 2023.02.07 |
| 루비의 JSON 문자열 구문 분석 (0) | 2023.02.07 |