이 글은 주로 WordPress의 기사에 고정 필드를 추가하는 방법을 소개합니다. 이제는 모든 사람과 공유합니다.
Let WordPress 기사 data 기사 편집 페이지에서 편집하고 나머지 API를 통해 얻을 수 있도록 테이블에 필드를 추가합니다.
예: 기사에 썸네일 필드 litpic 추가
먼저 mysql을 통해 wp_posts 기사 테이블에 필드 litpic을 추가합니다
그런 다음 함수에서 테마의 .php 뒤에 다음 코드를 추가합니다:
add_action( 'add_meta_boxes', 'myplugin_add_custom_box'); add_action( 'save_post', 'myplugin_save_postdata');function myplugin_add_custom_box() { add_meta_box('myplugin_sectionid', '设置缩略图', // 可自行修改标题文字 'myplugin_inner_custom_box', 'post'); }function myplugin_inner_custom_box( $post ) { global $wpdb; // Use nonce for verification wp_nonce_field( plugin_basename( __FILE__ ), 'myplugin_noncename' ); // 获取固定字段litpic的值,用于显示之前保存的值 // 此处wp_posts新添加的字段为litpic,多个用半角逗号隔开 $date = $wpdb->get_row( $wpdb->prepare( "SELECT litpic FROM $wpdb->posts WHERE ID = %d", $post->ID) ); // litpic 字段输入框的HTML代码 echo '<label for="litpic_new_field">图片url </label>'; echo '<input type="text" id="litpic_new_field" name="litpic_new_field" value="'.$date->litpic.'" size="28" />'; // 多个字段依此类推 } function myplugin_save_postdata( $post_id ) { // verify if this is an auto save routine. // If it is our form has not been submitted, so we dont want to do anything if ( defined( ’DOING_AUTOSAVE’ ) && DOING_AUTOSAVE )return; // verify this came from the our screen and with proper authorization, // because save_post can be triggered at other times if ( !wp_verify_nonce( $_POST['myplugin_noncename'], plugin_basename( __FILE__ ) ) )return; // 权限验证 if ( 'post' == $_POST['post_type'] ) { if ( !current_user_can( 'edit_post', $post_id ) )return; } // 获取编写文章时填写的固定字段的值,多个字段依此类推 $litpic = $_POST['litpic_new_field'];global $wpdb;$wpdb->update( "$wpdb->posts", // 以下一行代码,多个字段的话参照下面的写法,单引号中是字段名,右边是变量值。半角逗号隔开 array( 'litpic' => $litpic), array( 'ID' => $post_id ), // 添加了多少个新字段就写多少个%s,半角逗号隔开 array( '%s'), array( '%d') ); }
추가한 후 기사 페이지에 litpic 필드 입력 상자가 표시됩니다. 그림과 같이: #🎜 🎜#
그러나 현재 나머지 API는 아직 litpic 필드를 출력하지 않습니다. /wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php 파일을 엽니다. 다음 코드 추가:if ( ! empty( $schema['properties']['litpic'] ) ) { $data['litpic'] = $post->litpic; }
'litpic' => array( 'description' => __( 'A litpic to protect access to the content and excerpt.' ), 'type' => 'string', 'context' => array( 'view', 'edit', 'embed' ), ),
$post_type_attributes = array( 'title', 'editor', 'author', 'excerpt', 'thumbnail', 'comments', 'revisions', 'page-attributes', 'post-formats', 'custom-fields', 'litpic', ); $fixed_schemas = array( 'post' => array( 'title', 'editor', 'author', 'excerpt', 'thumbnail', 'comments', 'revisions', 'post-formats', 'custom-fields', 'litpic', ),
case 'litpic': $schema['properties']['litpic'] = array( 'description' => __( 'The ID for the litpic of the object.' ), 'type' => 'string', 'context' => array( 'view', 'edit', 'embed' ), ); break;
이제 나머지 API는 litpic 필드를 출력할 수 있습니다.
위 내용은 모두의 학습에 도움이 되기를 바랍니다. 더 많은 관련 내용은 PHP 중국어 홈페이지를 주목해주세요!
관련 추천:
activemq Stomp 클래스 코드 정보Yii 정보 프레임워크 추가, 삭제, 수정 확인위 내용은 WordPress의 기사에 고정 필드를 추가하는 방법 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!