[WordPress]寫WP外掛不能不知的add_action

LINEで送る
[`evernote` not found]

要寫外掛就得先搞清楚add_action這個函數
它讓我們的WordPress知道在甚麼時候該呼叫我們外掛中的函數
試用的語法如下:

<?php add_action( $tag, $function_to_add, $priority, $accepted_args ); ?>
  • $tag表示狀況
  • $function_to_add表示呼叫函數
  • $priority表示函數的重要程度
  • $accepted_args表示函數需要的參數

其中$priority跟$accepted_args不是必要參數就先不管他了
其實我覺得add_action好像有點像是AS中的addEventListener
$tag就是ENENT,而$function_to_add當然就是對應處理EVENT的函數
關於可用的$tag詳情要參考一下WordPress.org的Plugin API/Action Reference
或是有興趣看日文版的也很OK~

WordPress.org中的範例是希望在我們發表新文章時可以同時發一封MAIL通知朋友:

function email_friends($post_ID)  {
   $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');

有沒有越看越像addEventListener哩!?
不同的大概就在於add_action的處理函數接的並不是一個EVENT
而是因$tag而不同的參數
比如’publish_post’丟入的參數是$post_ID
而’wp_head ‘就不會傳參數…但他傳回的直就會出現在我們wordpress的head標籤中間…

在WP2.7後一般開啟wordpress時會執行觸發的順序如下:

  1. plugins_loaded
  2. sanitize_comment_cookies
  3. setup_theme
  4. auth_cookie_malformed
  5. auth_cookie_valid
  6. set_current_user
  7. init
  8. widgets_init
  9. parse_request
  10. send_headers
  11. pre_get_posts
  12. posts_selection
  13. wp
  14. template_redirect
  15. get_header
  16. wp_head
  17. wp_print_styles
  18. wp_print_scripts
  19. loop_start
  20. loop_end
  21. get_sidebar
  22. wp_meta
  23. get_footer
  24. wp_footer

好好的觀察跟利用
相信對開發WP外掛會有不小的幫助哩!!

11 則迴響於《[WordPress]寫WP外掛不能不知的add_action

  1. 通告: 「WordPress」嘗試來學習學習 WordPress 外掛程式的製作方法 - NewBSD

回應已關閉。