Wordpress/類別與函式

出自福留子孫
在2016年8月21日 (日) 21:09由丁志仁對話 | 貢獻所做的修訂版本

跳轉到: 導覽搜尋

類別

函式

WPINC/formatting.php中的函式:

  1. wptexturize():
  2. wptexturize_primes():
  3. _wptexturize_pushpop_element():
  4. wpautop():
  5. wp_html_split():
  6. get_html_split_regex():
  7. _get_wptexturize_split_regex():
  8. _get_wptexturize_shortcode_regex():
  9. wp_replace_in_html_tags():
  10. _autop_newline_preservation_helper():
  11. shortcode_unautop():
  12. seems_utf8():
  13. _wp_specialchars():
  14. wp_specialchars_decode():
  15. wp_check_invalid_utf8():
  16. utf8_uri_encode():
  17. remove_accents($string):轉換所有重音字符為ASCII字符。
  18. sanitize_file_name():
  19. sanitize_user($username, $strict = false):消毒帳號,移除標籤、八位位組、實體。如果$strict啟用,消毒後只保留字母、數字、_(底線)、空格、-、@ 。
  20. sanitize_key():
  21. sanitize_title():
  22. sanitize_title_for_query():
  23. sanitize_title_with_dashes():
  24. sanitize_sql_orderby():
  25. sanitize_html_class():
  26. convert_chars():
  27. convert_invalid_entities():
  28. balanceTags():
  29. force_balance_tags():
  30. format_to_edit():
  31. zeroise():
  32. backslashit():
  33. trailingslashit():
  34. untrailingslashit():
  35. addslashes_gpc():
  36. stripslashes_deep():
  37. stripslashes_from_strings_only():
  38. urlencode_deep():
  39. rawurlencode_deep():
  40. urldecode_deep():
  41. antispambot():
  42. _make_url_clickable_cb():
  43. _make_web_ftp_clickable_cb():
  44. _make_email_clickable_cb():
  45. make_clickable():
  46. _split_str_by_whitespace():
  47. wp_rel_nofollow():
  48. wp_rel_nofollow_callback():
  49. translate_smiley():
  50. convert_smilies():
  51. is_email():
  52. wp_iso_descrambler():
  53. _wp_iso_convert():
  54. get_gmt_from_date():
  55. get_date_from_gmt():
  56. iso8601_timezone_to_offset():
  57. iso8601_to_datetime():
  58. sanitize_email():
  59. human_time_diff():
  60. wp_trim_excerpt():
  61. wp_trim_words():
  62. ent2ncr():
  63. format_for_editor():
  64. _deep_replace():
  65. esc_sql():
  66. esc_url():
  67. esc_url_raw():
  68. htmlentities2():
  69. esc_js():
  70. esc_html():
  71. esc_attr():
  72. esc_textarea():
  73. tag_escape():
  74. wp_make_link_relative():
  75. sanitize_option():
  76. map_deep():
  77. wp_parse_str():
  78. wp_pre_kses_less_than():
  79. wp_pre_kses_less_than_callback():
  80. wp_sprintf():
  81. wp_sprintf_l():
  82. wp_html_excerpt():
  83. links_add_base_url():
  84. _links_add_base():
  85. links_add_target():
  86. _links_add_target():
  87. normalize_whitespace():
  88. wp_strip_all_tags($string, $remove_breaks = false):去除所有的HTML標記,包括script和style
  89. sanitize_text_field():
  90. wp_basename():
  91. capital_P_dangit():
  92. sanitize_mime_type():
  93. sanitize_trackback_urls():
  94. wp_slash():
  95. wp_unslash():
  96. get_url_in_content():
  97. wp_spaces_regexp():
  98. print_emoji_styles():
  99. print_emoji_detection_script():
  100. _print_emoji_detection_script():
  101. wp_encode_emoji():
  102. wp_staticize_emoji():
  103. wp_staticize_emoji_for_email():
  104. url_shorten():
  105. sanitize_hex_color():
  106. sanitize_hex_color_no_hash():
  107. maybe_hash_hex_color():

WPINC/user.php中的函式:

  1. wp_signon():
  2. wp_authenticate_username_password():
  3. wp_authenticate_email_password():
  4. wp_authenticate_cookie():
  5. wp_authenticate_spam_check():
  6. wp_validate_logged_in_cookie():
  7. count_user_posts():
  8. count_many_users_posts():
  9. get_current_user_id():
  10. get_user_option():
  11. update_user_option():
  12. delete_user_option():
  13. get_users():
  14. get_blogs_of_user():
  15. is_user_member_of_blog():
  16. add_user_meta():
  17. delete_user_meta():
  18. get_user_meta():
  19. update_user_meta():
  20. count_users():
  21. setup_userdata():
  22. wp_dropdown_users():
  23. sanitize_user_field():
  24. update_user_caches():
  25. clean_user_cache():
  26. username_exists():
  27. email_exists():
  28. validate_username():
  29. wp_insert_user():
  30. wp_update_user():
  31. wp_create_user():
  32. _get_additional_user_keys():
  33. wp_get_user_contact_methods():
  34. _wp_get_user_contactmethods():
  35. wp_get_password_hint():
  36. get_password_reset_key(帳號):創建、存儲,傳回用戶的密碼復原鍵。
  37. check_password_reset_key($key,$login):獲取基於密碼復原鍵,並登錄。
  38. reset_password():
  39. register_new_user():
  40. wp_send_new_user_notifications():
  41. wp_get_session_token():
  42. wp_get_all_sessions():
  43. wp_destroy_current_session():
  44. wp_destroy_other_sessions():
  45. wp_destroy_all_sessions():
  46. wp_get_users_with_no_role():
  47. _wp_get_current_user():

常用函式:

  • 頁面判斷函數
    1. is_single() - 判斷是否為內容頁(文章頁、Post)
    2. is_admin() - 判斷是否為後台管理控制面板
    3. is_home() - 判斷是否為首頁
    4. is_front_page() - 判斷是否為首頁頭版消息
    5. is_sticky() - 判斷是否為置頂文章
    6. is_comments_popup() - 判斷是否為評論的彈出窗口
    7. is_page() - 判斷是否任何頁面
    8. is_category() - 判斷是否為任何分類頁
    9. is_tag() - 判斷是否為標籤頁
    10. is_author() - 判斷是否為作者歸檔頁
    11. is_date() - 判斷是否為日期歸檔頁
    12. is_year() - 判斷是否為按年歸檔頁(已經有了一年)
    13. is_month() - 判斷是否為按月歸檔頁
    14. is_day() - 判斷是否為按天歸檔頁
    15. is_time() - 判斷是否按小時,「分鐘」,「秒」歸檔頁
    16. is_archive() - 是否歸檔頁
    17. is_search() - 是否搜索結果頁
    18. is_404() - 是否「HTTP 404: Not Found」 錯誤頁
    19. is_paged() - 主頁/Category/Archive頁是否以多頁顯示。判斷是否有分頁. 需要將 快速標籤插入到文章中才能將文章分成多頁
    20. is_attachment() - 判斷是否為附件文檔. 附件是通過編輯器上傳工具上傳的圖片或其他文件. 附件能顯示在相應的頁面或模版中
    21. is_preview() - 判斷文章是否顯示在草稿預覽模式
    22. has_excerpt() - 判斷當前文章是否有摘要
    23. is_active_sidebar() - 檢查現有側邊欄是否被激活(是否啟用)
    注意:每一個函數都可以跟一個參數,這個參數可以是一個數組,例如:
    is_single('1') 會在文章符合1 的的時候(例如文章的ID 是1)返回TRUE;
    is_page(array(42,'about','About Me')) 會在頁面符合數組的時候(例如頁面的ID 為42,頁面的標題/別名為'about' 或者'About Me')的時候返回TRUE。
  • Header部分常用到的PHP函數
    1. 博客名稱(Title)
    2. CSS文件路徑
    3. PingBack Url
    4. 模板文件路徑
    5. WordPress版本
    6. Atom Url
    7. RSS 2.o Url
    8. 博客 Url
    9. 博客網頁Html類型
    10. 博客網頁編碼
    11. 博客描述
    12. 特定內容頁(Post/Page)的標題
  • 模板常用的PHP函數及命令
    1. 調用Header模板
    2. 調用Sidebar模板
    3. 調用Footer模板
    4. 顯示內容(Post/Page)
    5. 檢查是否存在Post/Page
    6. 如果存在Post/Page則予以顯示
    7. While 結束
    8. If 結束
    9. 顯示時間,時間格式由「字符串」參數決定,具體參考PHP手冊
    10. 正文中的留言鏈接。如果使用 comments_popup_script() ,則留言會在新窗口中打開,反之,則在當前窗口打開
    11. 內容頁(Post/Page)標題
    12. 內容頁(Post/Page) Url
    13. 特定內容頁(Post/Page)所屬Category
    14. 作者
    15. 特定內容頁(Post/Page) ID
    16. 如果用戶已登錄並具有權限,顯示編輯鏈接
    17. 顯示Blogroll中的鏈接
    18. 調用留言/回復模板
    19. 顯示Page列表
    20. 顯示Categories列表
    21. 下一篇文章鏈接
    22. 上一篇文章鏈接
    23. 日曆
    24. 顯示內容存檔
    25. 導航,顯示上一篇/下一篇文章鏈接
    26. 嵌入其他文件,可為定制的模板或其他類型文件
  • 與模板相關的其他函數
    1. 輸出相應信息
    2. 顯示註冊鏈接
    3. 顯示登錄/註銷鏈接
    4. 將當前內容分頁
    5. 將當前內容截斷,以不在主頁/目錄頁顯示全部內容
    6. 網頁加載時間(秒)
    7. 網頁加載查詢量

add_action()

描述:在一個action上掛載(掛鉤機制)一個函數。

函數原型:add_action ( '動作名', '響應函數名', [優先級], [參數數目] );

參數說明:

(一)動作名: WordPress所提供的動作名,用於標識在哪個動作發生時,執行響應函數。相應函數名:當動作 hook_name 發生時需要執行的響應函數的名字。可以是 PHP 標準的函數,或者是 WordPress 內的函數,或者是插件內自定義的函數。

動作 (Actions) 是由 WordPress 內部的某些事件所觸發的,比如說發表一篇文章、更換主題或者訪問後台的某個管理界面,這些都是一件事件的例子。而插件則可以指定某些 PHP 函數來響應這些事件所觸發的動作。例如:

  1. 修改數據庫數據
  2. 發送電子郵件
  3. 修改即將顯示出來的內容
  4. 使用動作來掛載插件的基本步驟如下:
  5. 在插件代碼中定義當某個事件發生時,需要執行的 PHP 函數

用add_action() 把這個函數註冊到動作執行掛勾上,把插件源碼放到 WordPress 指定的地方,然後啟用它

(二)定義動作響應函數:要在插件中執行動作,就要先在插件文件(必須放到wp-content/plugins下)中定義一個響應動作的 PHP 函數。比如下面的例子,實現的功能是在新文章發佈時,通過電子郵件通知好友。

$friends = 'bob@example.org,susie@example.org';  
    mail($friends, "sally's blog updated",   
      'I just put something on my blog: http://blog.example.com');  
    return $post_ID;

可以把函數掛載到系統中:add_action ( 'publish_post', 'email_friends' );

(三)優先級:這是一個可選的參數,預設值為10。由於可以把多個函數註冊到同一個動作,所以這個參於是用於指定註冊到這個動作中的這個函數執行的優先級,數字越小優先 級越高,執行得也越早,反之亦然。如果若干個函數以相同的優先級註冊到同一個動作,那麼執行順序則是由它們註冊的先後順序所決定。

(四)參數數目:這是一個可選的參數,預設值是1。由於某些動作可能會把多個參數傳給響應函數,所以這個有時候需要指定響應函數能接受多少個參數。這個參數是在 1.5.1 版加進去的。這個函數類似於Qt中的信號槽機制。