麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > CMS > Wordpress > 正文

wordpress新增post_type和post_meta

2024-09-07 00:50:52
字體:
來源:轉載
供稿:網友

自定義文章類型,增加post_type:

1:調用add_action('init','自定義方法名')就是在系統調用do_action('init')的時候執行自定義方法

2:編寫自定義方法:

  1. function my_custom_init()      
  2. {     
  3.   $labels = array(      //用來配置文章類型顯示在后臺界面的一些描述性文字。默認為空 
  4.     'name' => '書本name',     
  5.     'singular_name' => '書本singularname',     
  6.     'add_new' => 'Add_new',     
  7.     'add_new_item' => 'add_new_item',     
  8.     'edit_item' => 'edit_item',     
  9.     'new_item' => 'new_item',     
  10.     'view_item' => 'view_item',     
  11.     'search_items' => 'search_items',     
  12.     'not_found' =>  'not_found',     
  13.     'not_found_in_trash' => 'not_found_in_trash',      
  14.     'parent_item_colon' => '',     
  15.     'menu_name' => 'menu_name'     
  16.     
  17.   );     
  18.   $args = array(     
  19.     'labels' => $labels,     
  20.     'public' => true,    //用于定義publicly_queriable, show_ui, show_in_nav_menus and exclude_from_search的值 
  21.     'publicly_queryable' => true, //可以從前臺獲取的變量(    
  22.     'show_ui' => true,    //是否生成一個默認的管理頁面,也就是是否在后臺有管理頁面  
  23.     'show_in_menu' => true,  //是否在后臺菜單項中顯示,如果為ture,那么show_ui的值也必須設置為true,將會有一個頂級菜單項。還可以為一個字符串    
  24.     'query_var' => true,    //url重寫會用到 
  25.     'rewrite' => true,    //是否有url重寫,設置為false的話將會防止url重寫 
  26.     'capability_type' => 'post',//查看、編輯、刪除的能力類型     
  27.     'has_archive' => true,     //文章是否有歸檔,就是一個所有文章歸檔頁面。 
  28.     'hierarchical' => false,    //文章是否有層級關系,也就是是否允許有父級文章 
  29.     'menu_position' => null,   //后臺菜單中的位置  
  30.     'supports' => array('title','editor','author','thumbnail','excerpt','comments')     
  31.   ); //對文章類型的一些功能支持  及時post表的一些屬性 
  32.  
  33.   register_post_type('需要定義的post_type',$args);   /   
  34. }     
  35. 當然在實際工作中用不到這么的屬性: 
  36. //eg 
  37. add_action('init''ts_post_type_slider'); 
  38. function ts_post_type_slider() { 
  39. register_post_type( 'slider'
  40.                 array(  
  41. 'label' => __('Slider'),  
  42. 'public' => true,  
  43. 'show_ui' => true, 
  44. 'show_in_nav_menus' => false, 
  45. 'menu_position' => 5, 
  46. 'supports' => array
  47.                    'title'
  48. 'excerpt'
  49.                             'thumbnail'
  50. )  
  51. ); 

3:到了這里差不多可以為文章增加新的post_type了,但是增加的post_type的supports可能不能滿足你的需求,這個需要增加post_meta,就是所謂的自定義字段:

1:首先還是調用add_action('admin_menu', 'mytheme_add_box');看到這里發現給wordpress增加新東西都是調用add_action()的方法,第一個參數需要到wordpress官方網站查找。

2:編寫mytheme_add_box方法.在mytheme_add_box方法中調用

add_meta_box($meta_box['id'], $meta_box['title'], $meta_box['showbox'], $meta_box['page'], $meta_box['context'], $meta_box['priority']);

$id HTML 代碼中設置區域中id屬性的值 

$title 區域中的標題名稱 

$callback 添加的設置區域的顯示函數(回調函數) 在回調函數中可以訪問$post

$post_type 在 post 還是 page 的編輯頁面中顯示 ,也可以添加自定義的post_type

$context 設置區域的顯示位置,主編輯區、邊欄、其他('normal','advanced',或者 'side')

$priority 設置區域顯示的優先級 

$callback_args 回調函數接受的附加參數...

3:編寫add_meta_box方法中的回調函數:

  1. function slider_show_box() { 
  2. global $meta_boxes$post//感覺你點擊新建post的時候,wordpress已經在數據庫插入一條數據了,這個post的ID就也可以使用了 
  3. // Use nonce for verification 
  4. echo ''
  5. echo mytheme_create_metabox($meta_boxes[0]); 

4:保存增加的post_meta了

  1. add_action('save_post''mytheme_save_data'); 
  2. function mytheme_save_data($post_id) { 
  3. global $meta_boxes
  4. //驗證 安全問題 
  5. if(isset($_POST['mytheme_meta_box_nonce'])){ 
  6. if (!wp_verify_nonce($_POST['mytheme_meta_box_nonce'], basename(__FILE__))) { 
  7. return $post_id
  8.  
  9. //是否是自動保存 
  10. if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) { 
  11. return $post_id
  12.  
  13. // 權限檢查 
  14. if ('page' == isset($_POST['post_type'])) { 
  15. if (!current_user_can('edit_page'$post_id)) { 
  16. return $post_id
  17. elseif (!current_user_can('edit_post'$post_id)) { 
  18. return $post_id
  19.   //保存,或者更新post_meta 
  20. foreach($meta_boxes as $meta_box){ 
  21. foreach ($meta_box['fields'as $field) { 
  22. $old = get_post_meta($post_id$field['id'], true); 
  23. $new = (isset($_POST[$field['id']]))? $_POST[$field['id']] : ""
  24.  
  25. if ($new && $new != $old) { 
  26. update_post_meta($post_id$field['id'], $new); 
  27. elseif ('' == $new && $old) { 
  28. delete_post_meta($post_id$field['id'], $old); 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 精品国产中文字幕 | 久久亚洲第一 | 毛片免费观看日本中文 | 亚洲天堂中文字幕在线观看 | 性盈盈盈影院 | 久久久综合视频 | 成人在线网站 | 可以免费看的av | 久久精品美乳 | 亚洲精品一区二区三区大胸 | 操操操日日日干干干 | 蜜桃网在线观看 | asian裸体佳人pics | 欧美日韩在线视频观看 | 国产亚洲精品美女久久久 | 亚洲第一综合色 | 日韩视频一区二区在线观看 | 久久艹国产精品 | 国产精品成人亚洲一区二区 | 黄色网址进入 | 日韩视频在线一区二区三区 | 黄色特级一级片 | 国毛片 | 国产免费小视频在线观看 | 国产成人综合在线观看 | 精国产品一区二区三区 | 久久精品亚洲精品国产欧美kt∨ | 中文字幕h | 国产91精品久久久久久 | 一级毛片播放 | 欧美一级在线免费 | 亚洲国产高清视频 | 国产一区二区三区视频免费 | 国产妇女乱码一区二区三区 | 久久av喷吹av高潮av懂色 | 日本欧美视频 | 97超碰资源站 | 福利四区| 国产视频在线播放 | 国产成人羞羞视频在线 | 空姐一级毛片 |