Becomin' Charles

算法 | LNMP | Flutter | Mac

Becomin' Charles

Home页面流程图

  1. hybrid_head()
  2. wp_haed()
  3. body
  4. hybrid_before_html()—action,默认没有被hook
  5. div#body-container
  6. hybrid_before_header()—action,默认没有被hook
  7. div#header-container
  8. div#header
  9. hybrid_header()
  10. end#header
  11. end#header-container
  12. hybrid_after_header()
  13. div#container
  14. hybrid_before_container()—action,默认没有被hook
  15. div#content
  16. hybrid_before_content()
  17. /wp loop begin/
  18. div.hybrid_post_class()
  19. h2.post-title inline
  20. p.byline inline
  21. div.entry-content inline
  22. p.entry-meta inline
  23. end.hybrid_post_class()
  24. /end wp loop/
  25. hybrid_after_content()
  26. end#content
  27. hybrid_after_container()
  28. end#container
  29. div#footer-container
  30. hybrid_before_footer()
  31. div#footer
  32. hybrid_footer()
  33. wp_footer()
  34. end#footer
  35. hybrid_after_footer()—action,默认没有被hook
  36. end#footer-container
  37. end#body-container
  38. /body

hook到hybrid_head()的函数列表

  1. hybrid_meta_content_type()
  2. hybrid_meta_robots()
  3. hybrid_meta_author()
  4. hybrid_meta_copyright()
  5. hybrid_meta_revised()
  6. hybrid_meta_abstract()
  7. hybrid_meta_description()
  8. hybrid_meta_keywords()
  9. hybrid_meta_template()
  10. wp_generator()
  11. hybrid_favicon()
  12. hybrid_head_feeds()
  13. hybrid_head_pingback()
  14. hybrid_head_breadcrumb()

hook到hybrid_header()的函数列表

  1. hybrid_site_title() —提供同名filter,参数为标题包括其html tag,没有被hook
  2. hybrid_site_description() —提供同名filter,参数为站点描述,包括其html tag,没有被hook

hook到hybrid_after_header()的函数列表

  1. hybrid_page_nav() —启动两个action,并提供一个同名filter,参数为导航条包括其html tag,没有被hook

hook到hybrid_before_content()的函数列表

  1. hybrid_breadcrumb() —提供一个同名filter和一个名为hybrid_breadcrumb_args的filter
  2. hybrid_get_utility_before_content() —该函数打印位于Content之前的Sidebar,在Hybrid中被赋予一个名称为Utility

hook到hybrid_after_content()的函数列表

  1. hybrid_get_utility_after_content() —该函数打印位于Content之后的Sidebar
  2. hybrid_navigation_links() —该函数打印WP自带的简单页面导航Prev和Next

hook到hybrid_after_container()的函数列表

  1. hybrid_get_primary() —该函数首先提供一个filter,名为hybrid_primary_var,参数sidebar_id,如果传入false可以关闭侧边栏,该函数打印主侧边栏,并在此之前和之后分别触发一个action
  2. hybrid_get_secondary() —原理基本上和上一个相同,提供的filter名字为hybrid_secondary_var
  3. hybrid_insert() —提供一个同名filter,参数为要打印出来的内容,默认为false,这是专门给用户用来添加sidebar的hook
  1. hybrid_get_subsidiary() —其功能等同于侧边栏,同上面两个侧边栏
  1. hybrid_copyright() —打印版权信息,提供同名filter
  2. hybrid_credit() —与上面一个类似,也提供同名filter
  3. hybrid_query_counter() —打印页面生成时间和数据库查询数的函数

由hybrid_page_nav()触发的action

  1. hybrid_before_page_nav() —action,默认没有被hook
  2. hybrid_after_page_nav() —action,默认没有被hook

由hybrid_get_primary()和hybrid_get_secondary()和hybrid_get_subsidiary() 触发的action

  1. hybrid_before_primary() —action,默认没有被hook
  2. hybrid_after_primary() —action,默认没有被hook
  3. hybrid_before_secondary() —action,默认没有被hook
  4. hybrid_after_secondary() —action,默认没有被hook
  5. hybrid_before_subsidiary() —action,默认没有被hook
  6. hybrid_after_subsidiary() —action,默认没有被hook

Timer and TimerTask class diagram

由于项目开发的需要,必须实现让一个Java程序定时运行。比如,我的项目中,有一个网络蜘蛛,需要从互联网上抓取数据,与其配合,有另一个程序来对新抓取的页面进行索引的创建,由于数据源更新频率不高,我们不可能让蜘蛛无休无止地工作,或者忙等待新数据的产生,那样只能造成浪费,而且非常地不礼貌,所以最理想的情况是,让它每隔一个小时运行一次,这样一天也就运行不了几次。

阅读全文 »

页面模板一览

  1. Template Name: Archives
  2. Template Name: Authors
  3. Template Name: Biography
  4. Template Name: Blog
  5. Template Name: Bookmarks
  6. Template Name: Categories
  7. Template Name: Log In
  8. Template Name: Logged In
  9. Template Name: No Widgets
  10. Template Name: Profile
  11. Template Name: Quick Post
  12. Template Name: Register
  13. Template Name: Sitemap
  14. Template Name: Tags
  15. Template Name: Widgets

Action一览表

  1. comment_form
  2. hybrid_before_html
  3. hybrid_after_html
  4. hybrid_head
  5. hybrid_before_header
  6. hybrid_header
  7. hybrid_after_header
  8. hybrid_before_page_nav
  9. hybrid_after_page_nav
  10. hybrid_before_cat_nav
  11. hybrid_after_cat_nav
  12. hybrid_before_container
  13. hybrid_before_content
  14. hybrid_after_content
  15. hybrid_after_single
  16. hybrid_after_page
  17. hybrid_before_comments
  18. hybrid_before_primary
  19. hybrid_after_primary
  20. hybrid_before_secondary
  21. hybrid_after_secondary
  22. hybrid_before_subsidiary
  23. hybrid_after_subsidiary
  24. hybrid_after_container
  25. hybrid_before_footer
  26. hybrid_footer
  27. hybrid_after_footer
  28. hybrid_child_settings

Filter一览表

  1. show_password_fields <-- register.php(115)
  2. hybrid_post_meta_boxes <-- meta-box.php(74)
  3. hybrid_page_meta_boxes <-- meta-box.php(121)
  4. hybrid_settings_args <-- theme-settings-admin.php(65)
  5. hybrid_breadcrumb_args <-- breadcrumbs.php(31)
  6. hybrid_breadcrumb <-- breadcrumbs.php(220)
  7. hybrid_breadcrumb <-- breadcrumbs.php(222)
  8. hybrid_avatar <-- comments.php(67)
  9. hybrid_allowed_tags <-- filters.php(95)
  10. hybrid_site_title <-- filters.php(115)
  11. hybrid_site_description <-- filters.php(134)
  12. hybrid_page_nav <-- filters.php(166)
  13. hybrid_cat_nav <-- filters.php(189)
  14. hybrid_category_menu_args <-- filters.php(236)
  15. hybrid_category_menu <-- filters.php(275)
  16. hybrid_search_form <-- filters.php(313)
  17. hybrid_insert <-- filters.php(328)
  18. hybrid_copyright <-- filters.php(350)
  19. hybrid_credit <-- filters.php(380)
  20. get_the_image_args <-- get-the-image.php(37)
  21. get_the_video_args <-- get-the-video.php(37)
  22. hybrid_enqueue_style <-- media.php(39)
  23. hybrid_enqueue_script <-- media.php(92)
  24. hybrid_favicon <-- template-functions.php(293)
  25. hybrid_primary_args <-- widgets.php(64)
  26. hybrid_primary_inserts <-- widgets.php(68)
  27. hybrid_secondary_args <-- widgets.php(84)
  28. hybrid_secondary_inserts <-- widgets.php(88)
  29. hybrid_subsidiary_args <-- widgets.php(110)
  30. hybrid_subsidiary_inserts <-- widgets.php(114)
  31. hybrid_utility_args <-- widgets.php(138)
  32. hybrid_utility_inserts <-- widgets.php(142)
  33. hybrid_widget_class <-- widgets.php(209)
  34. hybrid_primary_var <-- widgets.php(402)
  35. hybrid_secondary_var <-- widgets.php(420)
  36. hybrid_subsidiary_var <-- widgets.php(438)
  37. wp_page_menu_args <-- legacy.functions.php(40)
  38. wp_page_menu <-- legacy.functions.php(75)
  39. widget_title <-- archives.php(26)
  40. widget_title <-- authors.php(26)
  41. link_category <-- bookmarks.php(145)
  42. widget_title <-- categories.php(26)
  43. widget_title <-- pages.php(26)
  44. widget_title <-- search.php(26)
  45. widget_title <-- tags.php(26)

原文

WordPress.org的官方插件目录最大的问题,也是最常被抱怨的问题,就是那令人恶心的搜索。

以后不会再这样了。我们现在使用了Sphinx(一个“免费的开源的SQL全文搜索引擎”)来加强官方插件目录的搜索,无论是从官方网站搜索,还是从你WP的后台搜索插件(插件→添加新插件),搜索体验都会得到提升。

现在,搜索功能更棒了。虽然还存在着一些奇怪的小问题(我们的错,不是Sphinx的),当然我们会在短期内修复的,但是能让每个人用上它,我们十分高兴:)。

目前,只有插件的标题、描述、安装、FAQ等等来自readme.txt的字段被索引,不过,我们很快会补充完整的,包括作者和tags等。

译注:刚才体验了一下,确实提升很大,当然,这是由于原来的搜索实在是太烂了!现在,输入以空格分隔的多个关键字,也可以得到相对准确的结果了,结果列表的相关度还是非常大的。

在上一篇《Hybrid主题框架综述》中,我们已经介绍了Hybrid的基本原理。这篇文章,我们将主要介绍如何使用Hybrid来制作一款主题。本文主要面向的读者为主题制作爱好者,和狂热的DIY fans们。

阅读全文 »

Hybrid主题框架首次发布于2008年11月,该框架功能完备,定制性强,得到了很多开发者的青睐,以本文为首的系列文章,将向您介绍这款主题框架的方方面面。

阅读全文 »