讓wordpress的文章數(shù)據(jù)表 增加一個(gè)字段,使其能在文章編輯頁(yè)能編輯,并能通過(guò)rest api 獲取出來(lái)。
例:給文章加一個(gè)縮略圖字段 litpic
首先 通過(guò)mysql 給文章表 wp_posts 加一個(gè)字段 litpic
然后在主題的function.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 , 設(shè)置縮略圖 , // 可自行修改標(biāo)題文字 myplugin_inner_custom_box , post }function myplugin_inner_custom_box( $post ) {global $wpdb;// Use nonce for verificationwp_nonce_field( plugin_basename( __FILE__ ), myplugin_noncename // 獲取固定字段litpic的值,用于顯示之前保存的值// 此處wp_posts新添加的字段為litpic,多個(gè)用半角逗號(hào)隔開$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 html' target='_blank'>value= .$date- litpic. size= 28 / // 多個(gè)字段依此類推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 anythingif ( 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 timesif ( !wp_verify_nonce( $_POST[ myplugin_noncename ], plugin_basename( __FILE__ ) ) )return;// 權(quán)限驗(yàn)證if ( post == $_POST[ post_type ] ) {if ( !current_user_can( edit_post , $post_id ) )return;// 獲取編寫文章時(shí)填寫的固定字段的值,多個(gè)字段依此類推$litpic = $_POST[ litpic_new_field global $wpdb;$wpdb- update( $wpdb- posts ,// 以下一行代碼,多個(gè)字段的話參照下面的寫法,單引號(hào)中是字段名,右邊是變量值。半角逗號(hào)隔開array( litpic = $litpic),array( ID = $post_id ),// 添加了多少個(gè)新字段就寫多少個(gè)%s,半角逗號(hào)隔開array( %s ),array( %d )}
添加后,文章頁(yè)會(huì)顯示litpic字段的輸入框,如圖:

但此時(shí) rest api還不會(huì)把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;
現(xiàn)在,rest api 就可以把litpic 字段輸出了。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,更多相關(guān)內(nèi)容請(qǐng)關(guān)注PHP !
相關(guān)推薦:
關(guān)于activemq stomp類代碼
關(guān)于Yii框架的增刪改查
以上就是wordpress添加文章固定字段的介紹的詳細(xì)內(nèi)容,PHP教程
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。
新聞熱點(diǎn)
疑難解答
圖片精選