<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>程默的博客 &#187; web项目框架</title>
	<atom:link href="http://blog.chacuo.net/category/web-tech/web-framework/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.chacuo.net</link>
	<description>web原理、web架构、web安全、web性能、服务器性能、服务器架构、服务器安全;你不能预知明天，但你可以利用今天。你不能样样顺利，但你可以事事尽力!</description>
	<lastBuildDate>Mon, 31 Aug 2020 15:33:40 +0000</lastBuildDate>
	<language>zh-CN</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>wordpress 过滤器原理执行过程分析(源码分析)</title>
		<link>http://blog.chacuo.net/89.html</link>
		<comments>http://blog.chacuo.net/89.html#comments</comments>
		<pubDate>Mon, 27 May 2013 15:42:54 +0000</pubDate>
		<dc:creator>程默</dc:creator>
				<category><![CDATA[web项目框架]]></category>
		<category><![CDATA[学习心得]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://blog.chacuo.net/?p=89</guid>
		<description><![CDATA[从上一篇：wordpress 3.5 filter 消息标签的名称 ，我们知道了wordpress过滤器消息灵 [...]]]></description>
				<content:encoded><![CDATA[<p>从上一篇：<a href="http://blog.chacuo.net/88.html">wordpress 3.5 filter 消息标签的名称</a> ，我们知道了wordpress过滤器消息灵活性。接下来，我们分析下这个具体执行过程。这个也是wordpress 优秀代码一个核心点。学习并使用该方法，应用到自己的站点中，将会给自己的系统带来很大的灵活性提升，扩展性将大大增强。其实这 类设计模式，就是”监听者模式“，先让监听者监听某个事件，只要发生某个事情，就去执行任务。对一个事件，可以添加条监控，分别执行独立任务。 不过，消息过滤模式，它有一个特点，每个执行任务将会返回一个结果，这个结果将作为下一个任务输入参数。第一个任务输入参数，就是发送消息，并且传入的参数。</p>
<p>是不是感觉有点晕晕啦，呵呵，如果对监听者设计模式熟悉的话，比较容易理解的。 打个比方说，教室有张三在看小说，李四在聊天。但是，他们都怕老师进入教师。 因此都监听老师来了的事件。只要老师来了，张三就停止看小说，李四也不能聊天。 有个同学就望风，发现老是来了。 他喊一声：某某老是来了。 然后，张三，李四动作就激发啦。 望风报信同学，是消息的发送者。</p>
<p>实现类似上面2个功能，wordpress主要2个常用函数是：</p>
<p>add_filter($tag, $function_to_add, $priority = 10, $accepted_args = 1) 添加消息主题$tag类型过滤器，过滤函数是：$function_to_add 该函数一定需要有返回值的；$priority是该函数执行优先级；数字越小将越先执行,accepted_args支持传入参数个数，默认是1。 </p>
<p>apply_filters($tag, $value) ，发送过滤主题消息，$tag消息主题，$value 发送需要过滤内容。</p>
<p>&#160;</p>
<p><strong>PHP代码执行该过程原理</strong></p>
<blockquote><p>&#160;</p>
<p>举例说明：</p>
<p>add_filter(‘the_title’,’filter_trim_title’,1,1);</p>
<p>实际实现类似：</p>
<p>$wp_filter[‘the_title’] []= array(‘function’=&gt;’filter_trim_title’…) 用一个数组列表，记录消息所有映射函数，及所有传入参数</p>
<p>如果再有一条</p>
<p>add_filter(‘the_title’,’filter_substr_title’,1,1);</p>
<p>继续执行：</p>
<p>$wp_filter[‘the_title’] []= array(‘function’=&gt;’filter_substr_title’…) ，该消息内容增加一条函数映射</p>
<p>如果这个时候，执行以下代码:apply_filters(‘the_title’,’testtest’)，代码执行将会是类似如下：</p>
<p>$args=’testtest’;</p>
<p>foreach(add_filter(‘the_title’) as $the)</p>
<p>{</p>
<p>$args = call_user_func_array($the['function'], array_slice($args, 1, (int) $the(&#8216;accepted_args&#8217;])); ///循环将该消息所有函数，执行一次，将返回的值作为下一个函数传入值。这里foreach前 会按照优先级排序</p>
<p>}</p>
<p>return $args; ///返回过滤后结果</p>
<p>&#160;</p>
</blockquote>
<p>&#160;</p>
<p>通过上面例子，会发现，添加消息过滤方法，跟发送消息可以不同地方，只要放到一个全局数组中就可以了。 你只要在开始时候，增加过滤消息映射配置，可以变得更多行。 然后，可以再任意地方，发出这类消息，并且传入输入字符。 你会发现，通过该功能做消息的过滤，将是很轻松事情。</p>
<p>&#160;</p>
<p>我们经常下会有从数据库里面读出代码，然后想做输出，这个时候，我们需要做转义操作。如果你的系统在读出内容后，添加了过滤消息发送接口，你需要对输出数据进行处理很容易。如下举例子</p>
<blockquote></blockquote>
<blockquote></blockquote>
<blockquote><p>在通用包含地方添加如下代码（functions.php是不错选择）</p>
<p>&#160;</p>
<p>add_filters(‘the_content’,’filter_contents’);</p>
<p>function filter_contents($data)&#160; </p>
<p>{</p>
<p>&#160;&#160;&#160;&#160; return htmlspecialchars($data);</p>
<p>}</p>
<p>然后在读取数据库地方加入如下代码</p>
<p>function get_content($data)</p>
<p>{</p>
<p>&#160;&#160;&#160;&#160;&#160; return apply_filters(‘the_content’,$data);&#160; //这样将$data作为消息发送，内容数据一起发送出去，所有绑定了’the_content’消息的所有函数，按照顺序串起来过滤内容。第一个过滤后结果，作为第2个输入参数，直到最后一个处理完，返回了内容。就是apply_filters 获得的内容。</p>
<p>}</p>
<p>&#160;</p>
</blockquote>
<p>&#160;</p>
<p>觉得不错吧，这种解耦方法。扩展性大大增强，在你的项目中也用下类似方法吧。 其实实现过程很容易的。 但是，带来的扩展性就非常巨大了。其它处理消息过滤器函数，还有：has_filter() current_filter() merge_filters() remove_filter() remove_all_filters() 等，感兴趣，可以去研究下 它们源码！</p>
<p>不早了，昨晚休息比较晚，今天这个时候，感觉很困了。 欢迎与我交流！</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.chacuo.net/89.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>wordpress 3.5 filter 消息标签的名称</title>
		<link>http://blog.chacuo.net/88.html</link>
		<comments>http://blog.chacuo.net/88.html#comments</comments>
		<pubDate>Sun, 26 May 2013 15:56:41 +0000</pubDate>
		<dc:creator>程默</dc:creator>
				<category><![CDATA[web项目框架]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://blog.chacuo.net/?p=88</guid>
		<description><![CDATA[wordpress 框架有很多优点，从前一篇“《我的博客》之从技术眼中分析wordpress结构优缺点” ，可 [...]]]></description>
				<content:encoded><![CDATA[<p>wordpress 框架有很多优点，从前一篇<u>“</u><a href="http://blog.chacuo.net/67.html"><u>《我的博客》之从技术眼中分析wordpress结构优缺点</u></a>” ，可以看到，它的消息标签在解耦方面扩展性有多强。 </p>
<p>我看了，wordpress官方手册，里面没有对所有标签进行罗列。而如果你要进行wordpress插件开发，功能扩展开发。它的消息标签，是必须要有所了解的。 以下是我收集的所有filters类的消息标签，居然有500多个。 </p>
<p>&#160;</p>
<p style="text-indent: 0px">&#8216;add_menu_classes&#8217;    <br />&#8216;admin_body_class&#8217;     <br />&#8216;admin_comment_types_dropdown&#8217;     <br />&#8216;admin_footer_text&#8217;     <br />&#8216;admin_memory_limit&#8217;     <br />&#8216;admin_post_thumbnail_html&#8217;     <br />&#8216;admin_title&#8217;     <br />&#8216;admin_url&#8217;     <br />&#8216;admired_attachment_size&#8217;     <br />&#8216;admired_author_bio_avatar_size&#8217;     <br />&#8216;admired_layout_classes&#8217;     <br />&#8216;admired_status_avatar&#8217;     <br />&#8216;admired_text&#8217;     <br />&#8216;akismet_comment_nonce&#8217;     <br />&#8216;akismet_delete_commentmeta_interval&#8217;     <br />&#8216;akismet_optimize_table&#8217;     <br />&#8216;akismet_show_user_comments_approved&#8217;     <br />&#8216;akismet_ua&#8217;     <br />&#8216;allowed_http_origin&#8217;     <br />&#8216;allowed_http_origins&#8217;     <br />&#8216;allowed_themes&#8217;     <br />&#8216;allow_subdirectory_install&#8217;     <br />&#8216;all_plugins&#8217;     <br />&#8216;all_themes&#8217;     <br />&#8216;attachment_fields_to_edit&#8217;     <br />&#8216;attachment_fields_to_save&#8217;     <br />&#8216;attachment_icon&#8217;     <br />&#8216;attachment_link&#8217;     <br />&#8216;attribute_escape&#8217;     <br />&#8216;auth_redirect_scheme&#8217;     <br />&#8216;autocomplete_users_for_site_admins&#8217;     <br />&#8216;blog_details&#8217;     <br />&#8216;blog_option_&#8217;     <br />&#8216;blog_redirect_404&#8242;     <br />&#8216;body_class&#8217;     <br />&#8216;browse-happy-notice&#8217;     <br />&#8216;bulk_actions-&#8217;     <br />&#8216;can_edit_network&#8217;     <br />&#8216;category_archive_meta&#8217;     <br />&#8216;category_description&#8217;     <br />&#8216;category_feed_link&#8217;     <br />&#8216;category_link&#8217;     <br />&#8216;close_comments_for_post_types&#8217;     <br />&#8216;comment_edit_pre&#8217;     <br />&#8216;comment_edit_redirect&#8217;     <br />&#8216;comment_form_default_fields&#8217;     <br />&#8216;comment_form_defaults&#8217;     <br />&#8216;comment_form_field_comment&#8217;     <br />&#8216;comment_form_logged_in&#8217;     <br />&#8216;comment_max_links_url&#8217;     <br />&#8216;comment_row_actions&#8217;     <br />&#8216;comments_array&#8217;     <br />&#8216;comments_open&#8217;     <br />&#8216;comments_per_page&#8217;     <br />&#8216;comments_popup_link_attributes&#8217;     <br />&#8216;comment_status_links&#8217;     <br />&#8216;comment_text&#8217;     <br />&#8216;contextual_help&#8217;     <br />&#8216;contextual_help_list&#8217;     <br />&#8216;core_version_check_locale&#8217;     <br />&#8216;cron_request&#8217;     <br />&#8216;cron_schedules&#8217;     <br />&#8216;customize_allowed_urls&#8217;     <br />&#8216;customize_value_&#8217; . $this-&gt;id_data[ 'base'     <br />'dashboard_incoming_links_feed'     <br />'dashboard_incoming_links_link'     <br />'dashboard_primary_feed'     <br />'dashboard_primary_link'     <br />'dashboard_primary_title'     <br />'dashboard_secondary_feed'     <br />'dashboard_secondary_link'     <br />'dashboard_secondary_title'     <br />'date_formats'     <br />'dbdelta_create_queries'     <br />'dbdelta_insert_queries'     <br />'dbdelta_queries'     <br />'default_content'     <br />'default_contextual_help'     <br />'default_excerpt'     <br />'default_hidden_meta_boxes'     <br />'default_option_'     <br />'default_site_option_'     <br />'default_title'     <br />'delete_site_email_content'     <br />'deprecated_argument_trigger_error'     <br />'deprecated_file_trigger_error'     <br />'deprecated_function_trigger_error'     <br />'disable_captions'     <br />'display_media_states'     <br />'display_post_states'     <br />'documentation_ignore_functions'     <br />'doing_it_wrong_trigger_error'     <br />'domain_exists'     <br />'do_mu_upgrade'     <br />'do_parse_request'     <br />'dynamic_sidebar_params'     <br />'editable_slug'     <br />'edit_bookmark_link'     <br />'edit_categories_per_page'     <br />'edit_comment_link'     <br />'editor_max_image_size'     <br />'edit_post_link'     <br />'edit_posts_per_page'     <br />'edit_profile_url'     <br />'edit_tag_link'     <br />'edit_tags_per_page'     <br />'edit_term_link'     <br />'embed_56'     <br />'embed_56com'     <br />'embed_6cn'     <br />'embed_cache_oembed_types'     <br />'embed_defaults'     <br />'embed_googlevideo'     <br />'embed_handler_html'     <br />'embed_ku6'     <br />'embed_letv'     <br />'embed_maybe_make_link'     <br />'embed_oembed_html'     <br />'embed_sina'     <br />'embed_sohu'     <br />'embed_tudou'     <br />'embed_youku'     <br />'embed_youtube'     <br />'enable_edit_any_user_configuration'     <br />'enable_post_by_email_configuration'     <br />'enable_update_services_configuration'     <br />'enter_title_here'     <br />'esc_html'     <br />'esc_textarea'     <br />'exit_on_http_head'     <br />'export_args'     <br />'ext2type'     <br />'extra_theme_headers'     <br />'feed_content_type'     <br />'force_filtered_html_on_import'     <br />'format_to_edit'     <br />'found_users_query'     <br />'gallery_style'     <br />'getarchives_join'     <br />'get_archives_link'     <br />'getarchives_where'     <br />'get_attached_file'     <br />'get_avatar_comment_types'     <br />'get_bloginfo_rss'     <br />'get_blogs_of_user'     <br />'get_bookmarks'     <br />'get_calendar'     <br />'get_categories_taxonomy'     <br />'get_comment_link'     <br />'get_comment_text'     <br />'get_delete_post_link'     <br />'get_edit_bookmark_link'     <br />'get_edit_comment_link'     <br />'get_edit_post_link'     <br />'get_edit_tag_link'     <br />'get_edit_term_link'     <br />'get_edit_user_link'     <br />'getimagesize_mimes_to_exts'     <br />'get_image_tag'     <br />'get_lastpostdate'     <br />'get_lastpostmodified'     <br />'get_media_item_args'     <br />'_get_page_link'     <br />'get_pages'     <br />'get_search_query'     <br />'get_tags'     <br />'get_terms_args'     <br />'get_terms_fields'     <br />'get_terms_orderby'     <br />'gettext'     <br />'gettext_with_context'     <br />'get_the_author_'     <br />'get_the_categories'     <br />'get_the_excerpt'     <br />'get_the_tags'     <br />'get_the_terms'     <br />'global_terms_enabled'     <br />'graceful_fail'     <br />'graceful_fail_template'     <br />'hidden_meta_boxes'     <br />'home_url'     <br />'http_headers_useragent'     <br />'http_origin'     <br />'http_request_args'     <br />'http_request_redirection_count'     <br />'http_request_timeout'     <br />'http_request_version'     <br />'http_response'     <br />'https_local_ssl_verify'     <br />'icon_dir'     <br />'icon_dirs'     <br />'icon_dir_uri'     <br />'image_add_caption_shortcode'     <br />'image_downsize'     <br />'image_editor_default_mime_type'     <br />'image_make_intermediate_size'     <br />'image_memory_limit'     <br />'image_resize_dimensions'     <br />'image_send_to_editor'     <br />'image_send_to_editor_url'     <br />'image_size_names_choose'     <br />'import_upload_size_limit'     <br />'install_plugins_nonmenu_tabs'     <br />'install_plugins_tabs'     <br />'install_themes_nonmenu_tabs'     <br />'install_themes_tabs'     <br />'intermediate_image_sizes'     <br />'intermediate_image_sizes_advanced'     <br />'is_email'     <br />'is_email_address_unsafe'     <br />'is_multi_author'     <br />'is_protected_meta'     <br />'jpeg_quality'     <br />'js_escape'     <br />'kses_allowed_protocols'     <br />'lang_codes'     <br />'list_cats'     <br />'list_pages'     <br />'load_default_embeds'     <br />'load_image_to_edit_attachmenturl'     <br />'load_image_to_edit_filesystempath'     <br />'load_image_to_edit_path'     <br />'load_textdomain_mofile'     <br />'locale'     <br />'login_form_bottom'     <br />'login_form_defaults'     <br />'login_form_middle'     <br />'login_form_top'     <br />'lostpassword_url'     <br />'manage_media_columns'     <br />'manage_pages_columns'     <br />'manage_posts_columns'     <br />'manage_' . $screen-&gt;id . '_columns'     <br />'manage_sites_action_links'     <br />'manage_taxonomies_for_attachment_columns'     <br />'manage_users_custom_column'     <br />'mce_css'     <br />'mce_spellchecker_languages'     <br />'media_meta'     <br />'media_row_actions'     <br />'media_send_to_editor'     <br />'media_upload_mime_type_links'     <br />'media_upload_tabs'     <br />'media_view_settings'     <br />'media_view_strings'     <br />'mime_types'     <br />'ms_user_row_actions'     <br />'mu_dropdown_languages'     <br />'mu_menu_items'     <br />'myblogs_blog_actions'     <br />'myblogs_options'     <br />'nav_menu_attr_title'     <br />'nav_menu_css_class'     <br />'nav_menu_description'     <br />'nav_menu_item_id'     <br />'nav_menu_items_'     <br />'nav_menu_meta_box_object'     <br />'network_home_url'     <br />'network_sites_updated_message_' . $_GET['updated']     <br />&#8216;network_site_url&#8217;     <br />&#8216;new_admin_email_content&#8217;     <br />&#8216;newblogname&#8217;     <br />&#8216;newblog_notify_siteadmin&#8217;     <br />&#8216;new_user_email_content&#8217;     <br />&#8216;newuser_notify_siteadmin&#8217;     <br />&#8216;next_comments_link_attributes&#8217;     <br />&#8216;next_posts_link_attributes&#8217;     <br />&#8216;ngettext&#8217;     <br />&#8216;ngettext_with_context&#8217;     <br />&#8216;nonce_life&#8217;     <br />&#8216;nonce_user_logged_out&#8217;     <br />&#8216;number_format_i18n&#8217;     <br />&#8216;oembed_dataparse&#8217;     <br />&#8216;oembed_fetch_url&#8217;     <br />&#8216;oembed_linktypes&#8217;     <br />&#8216;oembed_providers&#8217;     <br />&#8216;oembed_result&#8217;     <br />&#8216;option_&#8217;     <br />&#8216;option_enable_xmlrpc&#8217;     <br />&#8216;override_load_textdomain&#8217;     <br />&#8216;override_unload_textdomain&#8217;     <br />&#8216;page_attributes_dropdown_pages_args&#8217;     <br />&#8216;page_css_class&#8217;     <br />&#8216;page_link&#8217;     <br />&#8216;paginate_links&#8217;     <br />&#8216;pingback_ping_source_uri&#8217;     <br />&#8216;pingback_useragent&#8217;     <br />&#8216;pings_open&#8217;     <br />&#8216;plugin_install_action_links&#8217;     <br />&#8216;plugin_locale&#8217;     <br />&#8216;plugin_row_meta&#8217;     <br />&#8216;plupload_default_params&#8217;     <br />&#8216;plupload_default_settings&#8217;     <br />&#8216;plupload_init&#8217;     <br />&#8216;post_comments_feed_link_html&#8217;     <br />&#8216;post_date_column_time&#8217;     <br />&#8216;post_format_rewrite_base&#8217;     <br />&#8216;post_link_category&#8217;     <br />&#8216;postmeta_form_limit&#8217;     <br />&#8216;posts_request_ids&#8217;     <br />&#8216;post_thumbnail_html&#8217;     <br />&#8216;post_thumbnail_size&#8217;     <br />&#8216;post_type_archive_feed_link&#8217;     <br />&#8216;post_type_archive_link&#8217;     <br />&#8216;post_types_to_delete_with_user&#8217;     <br />&#8216;post_updated_messages&#8217;     <br />&#8216;pre_add_site_option_&#8217;     <br />&#8216;pre_comment_approved&#8217;     <br />&#8216;pre_ent2ncr&#8217;     <br />&#8216;pre_get_space_used&#8217;     <br />&#8216;pre_http_request&#8217;     <br />&#8216;pre_http_send_through_proxy&#8217;     <br />&#8216;pre_insert_term&#8217;     <br />&#8216;pre_option_&#8217;     <br />&#8216;pre_option_enable_xmlrpc&#8217;     <br />&#8216;pre_set_site_transient_&#8217;     <br />&#8216;pre_set_transient_&#8217;     <br />&#8216;pre_site_option_&#8217;     <br />&#8216;pre_site_transient_&#8217;     <br />&#8216;pre_transient_&#8217;     <br />&#8216;pre_update_option_&#8217;     <br />&#8216;pre_update_site_option_&#8217;     <br />&#8216;pre_upload_error&#8217;     <br />&#8216;pre_user_display_name&#8217;     <br />&#8216;preview_post_link&#8217;     <br />&#8216;previous_comments_link_attributes&#8217;     <br />&#8216;previous_posts_link_attributes&#8217;     <br />&#8216;print_scripts_array&#8217;     <br />&#8216;print_styles_array&#8217;     <br />&#8216;private_title_format&#8217;     <br />&#8216;protected_title_format&#8217;     <br />&#8216;pub_priv_sql_capability&#8217;     <br />&#8216;query&#8217;     <br />&#8216;quick_edit_dropdown_pages_args&#8217;     <br />&#8216;redirect_network_admin_request&#8217;     <br />&#8216;redirect_post_location&#8217;     <br />&#8216;redirect_user_admin_request&#8217;     <br />&#8216;request_filesystem_credentials&#8217;     <br />&#8216;role_has_cap&#8217;     <br />&#8216;rss_update_frequency&#8217;     <br />&#8216;rss_update_period&#8217;     <br />&#8216;safe_style_css&#8217;     <br />&#8216;salt&#8217;     <br />&#8216;sanitize_email&#8217;     <br />&#8216;sanitize_html_class&#8217;     <br />&#8216;sanitize_key&#8217;     <br />&#8216;sanitize_mime_type&#8217;     <br />&#8216;sanitize_trackback_urls&#8217;     <br />&#8216;sanitize_user&#8217;     <br />&#8216;screen_layout_columns&#8217;     <br />&#8216;screen_options_show_screen&#8217;     <br />&#8216;screen_settings&#8217;     <br />&#8216;script_loader_src&#8217;     <br />&#8216;search_link&#8217;     <br />&#8216;set_url_scheme&#8217;     <br />&#8216;show_admin_bar&#8217;     <br />&#8216;show_advanced_plugins&#8217;     <br />&#8216;show_network_site_users_add_existing_form&#8217;     <br />&#8216;show_network_site_users_add_new_form&#8217;     <br />&#8216;show_recent_comments_widget_style&#8217;     <br />&#8216;single_cat_title&#8217;     <br />&#8216;single_tag_title&#8217;     <br />&#8216;single_term_title&#8217;     <br />&#8216;site_option_&#8217;     <br />&#8216;site_transient_&#8217;     <br />&#8216;site_url&#8217;     <br />&#8216;smartadapt_attachment_size&#8217;     <br />&#8216;split_the_query&#8217;     <br />&#8216;status_header&#8217;     <br />&#8216;style_loader_src&#8217;     <br />&#8216;style_loader_tag&#8217;     <br />&#8216;stylesheet_directory&#8217;     <br />&#8216;stylesheet_directory_uri&#8217;     <br />&#8216;subdirectory_reserved_names&#8217;     <br />&#8216;tables_to_repair&#8217;     <br />&#8216;tag_archive_meta&#8217;     <br />&#8216;tag_cloud_sort&#8217;     <br />&#8216;tag_feed_link&#8217;     <br />&#8216;tag_link&#8217;     <br />&#8216;tag_row_actions&#8217;     <br />&#8216;tagsperpage&#8217;     <br />&#8216;taxonomy_feed_link&#8217;     <br />&#8216;teeny_mce_buttons&#8217;     <br />&#8216;teeny_mce_plugins&#8217;     <br />&#8216;template_directory&#8217;     <br />&#8216;template_directory_uri&#8217;     <br />&#8216;template_include&#8217;     <br />&#8216;term_name&#8217;     <br />&#8216;terms_clauses&#8217;     <br />&#8216;terms_to_edit&#8217;     <br />&#8216;the_author_posts_link&#8217;     <br />&#8216;the_category&#8217;     <br />&#8216;the_content_export&#8217;     <br />&#8216;the_content_more_link&#8217;     <br />&#8216;the_excerpt_export&#8217;     <br />&#8216;the_feed_link&#8217;     <br />&#8216;theme_action_links&#8217;     <br />&#8216;theme_install_actions&#8217;     <br />&#8216;theme_locale&#8217;     <br />&#8216;theme_root&#8217;     <br />&#8216;theme_root_uri&#8217;     <br />&#8216;theme_row_meta&#8217;     <br />&#8216;the_permalink&#8217;     <br />&#8216;the_search_query&#8217;     <br />&#8216;the_shortlink&#8217;     <br />&#8216;the_tags&#8217;     <br />&#8216;the_title&#8217;     <br />&#8216;the_title_rss&#8217;     <br />&#8216;thread_comments_depth_max&#8217;     <br />&#8216;time_formats&#8217;     <br />&#8216;transient_&#8217;     <br />&#8216;twentyeleven_attachment_size&#8217;     <br />&#8216;twentyeleven_author_bio_avatar_size&#8217;     <br />&#8216;twentyeleven_color_schemes&#8217;     <br />&#8216;twentyeleven_default_theme_options&#8217;     <br />&#8216;twentyeleven_header_image_height&#8217;     <br />&#8216;twentyeleven_header_image_width&#8217;     <br />&#8216;twentyeleven_layout_classes&#8217;     <br />&#8216;twentyeleven_layouts&#8217;     <br />&#8216;twentyeleven_status_avatar&#8217;     <br />&#8216;twentyeleven_theme_options_validate&#8217;     <br />&#8216;twentyten_attachment_height&#8217;     <br />&#8216;twentyten_attachment_size&#8217;     <br />&#8216;twentyten_author_bio_avatar_size&#8217;     <br />&#8216;twentyten_header_image_height&#8217;     <br />&#8216;twentyten_header_image_width&#8217;     <br />&#8216;twentytwelve_attachment_size&#8217;     <br />&#8216;twentytwelve_author_bio_avatar_size&#8217;     <br />&#8216;twentytwelve_status_avatar&#8217;     <br />&#8216;type_url_form_media&#8217;     <br />&#8216;update_attached_file&#8217;     <br />&#8216;update_feedback&#8217;     <br />&#8216;update_footer&#8217;     <br />&#8216;update_welcome_email&#8217;     <br />&#8216;update_welcome_subject&#8217;     <br />&#8216;update_welcome_user_email&#8217;     <br />&#8216;update_welcome_user_subject&#8217;     <br />&#8216;upload_dir&#8217;     <br />&#8216;upload_mimes&#8217;     <br />&#8216;upload_per_page&#8217;     <br />&#8216;upload_post_params&#8217;     <br />&#8216;upload_size_limit&#8217;     <br />&#8216;use_curl_transport&#8217;     <br />&#8216;use_default_gallery_style&#8217;     <br />&#8216;use_fsockopen_transport&#8217;     <br />&#8216;use_google_chrome_frame&#8217;     <br />&#8216;user_contactmethods&#8217;     <br />&#8216;user_dashboard_url&#8217;     <br />&#8216;user_has_cap&#8217;     <br />&#8216;user_row_actions&#8217;     <br />&#8216;use_streams_transport&#8217;     <br />&#8216;validate_current_theme&#8217;     <br />&#8216;validate_username&#8217;     <br />&#8216;views_&#8217;     <br />&#8216;walker_nav_menu_start_el&#8217;     <br />&#8216;whitelist_options&#8217;     <br />&#8216;widget_comments_args&#8217;     <br />&#8216;widget_posts_args&#8217;     <br />&#8216;widget_text&#8217;     <br />&#8216;widget_title&#8217;     <br />&#8216;wp_admin_bar_class&#8217;     <br />&#8216;wp_admin_css&#8217;     <br />&#8216;wp_admin_css_uri&#8217;     <br />&#8216;wp_cache_themes_persistently&#8217;     <br />&#8216;wp_checkdate&#8217;     <br />&#8216;wp_check_filetype_and_ext&#8217;     <br />&#8216;wp_check_post_lock_window&#8217;     <br />&#8216;wp_comment_reply&#8217;     <br />&#8216;wp_create_thumbnail&#8217;     <br />&#8216;wp_dashboard_widgets&#8217;     <br />&#8216;wp_default_editor&#8217;     <br />&#8216;wp_delete_file&#8217;     <br />&#8216;wp_die_ajax_handler&#8217;     <br />&#8216;wp_die_handler&#8217;     <br />&#8216;wp_die_xmlrpc_handler&#8217;     <br />&#8216;wp_dropdown_cats&#8217;     <br />&#8216;wp_edit_nav_menu_walker&#8217;     <br />&#8216;wp_editor_set_quality&#8217;     <br />&#8216;wp_feed_cache_transient_lifetime&#8217;     <br />&#8216;wp_fullscreen_buttons&#8217;     <br />&#8216;wp_generate_attachment_metadata&#8217;     <br />&#8216;wp_generate_tag_cloud&#8217;     <br />&#8216;wp_generator_type&#8217;     <br />&#8216;wp_get_attachment_image_attributes&#8217;     <br />&#8216;wp_get_attachment_link&#8217;     <br />&#8216;wp_get_attachment_metadata&#8217;     <br />&#8216;wp_get_attachment_thumb_file&#8217;     <br />&#8216;wp_get_attachment_thumb_url&#8217;     <br />&#8216;wp_get_attachment_url&#8217;     <br />&#8216;wp_get_nav_menu_items&#8217;     <br />&#8216;wp_get_nav_menus&#8217;     <br />&#8216;wp_get_update_data&#8217;     <br />&#8216;wp_handle_upload&#8217;     <br />&#8216;wp_handle_upload_prefilter&#8217;     <br />&#8216;wp_http_cookie_value&#8217;     <br />&#8216;wp_image_editors&#8217;     <br />&#8216;wp_insert_post_empty_content&#8217;     <br />&#8216;wp_insert_post_parent&#8217;     <br />&#8216;wp_is_large_network&#8217;     <br />&#8216;wp_kses_allowed_html&#8217;     <br />&#8216;wp_link_pages_args&#8217;     <br />&#8216;wp_list_bookmarks&#8217;     <br />&#8216;wp_list_categories&#8217;     <br />&#8216;wp_mail&#8217;     <br />&#8216;wp_mail_charset&#8217;     <br />&#8216;wp_mail_content_type&#8217;     <br />&#8216;wp_mail_from&#8217;     <br />&#8216;wp_mail_from_name&#8217;     <br />&#8216;wp_mime_type_icon&#8217;     <br />&#8216;wpmu_blogs_columns&#8217;     <br />&#8216;wpmu_delete_blog_upload_dir&#8217;     <br />&#8216;wpmu_drop_tables&#8217;     <br />&#8216;wpmu_signup_blog_notification_email&#8217;     <br />&#8216;wpmu_signup_blog_notification_subject&#8217;     <br />&#8216;wpmu_signup_user_notification_email&#8217;     <br />&#8216;wpmu_signup_user_notification_subject&#8217;     <br />&#8216;wpmu_users_columns&#8217;     <br />&#8216;wp_nav_menu&#8217;     <br />&#8216;wp_nav_menu_args&#8217;     <br />&#8216;wp_nav_menu_container_allowedtags&#8217;     <br />&#8216;wp_nav_menu_items&#8217;     <br />&#8216;wp_nav_menu_objects&#8217;     <br />&#8216;wp_network_dashboard_widgets&#8217;     <br />&#8216;wp_page_menu&#8217;     <br />&#8216;wp_page_menu_args&#8217;     <br />&#8216;wp_parse_str&#8217;     <br />&#8216;_wp_post_revision_fields&#8217;     <br />&#8216;wp_prepare_attachment_for_js&#8217;     <br />&#8216;wp_read_image_metadata&#8217;     <br />&#8216;wp_read_image_metadata_types&#8217;     <br />&#8216;_wp_relative_upload_path&#8217;     <br />&#8216;wp_setup_nav_menu_item&#8217;     <br />&#8216;wp_signup_location&#8217;     <br />&#8216;wp_sprintf&#8217;     <br />&#8216;wp_tag_cloud&#8217;     <br />&#8216;wp_terms_checklist_args&#8217;     <br />&#8216;wp_trim_words&#8217;     <br />&#8216;wp_unique_post_slug&#8217;     <br />&#8216;wp_unique_post_slug_is_bad_attachment_slug&#8217;     <br />&#8216;wp_unique_post_slug_is_bad_flat_slug&#8217;     <br />&#8216;wp_unique_post_slug_is_bad_hierarchical_slug&#8217;     <br />&#8216;wp_update_attachment_metadata&#8217;     <br />&#8216;wp_update_term_parent&#8217;     <br />&#8216;wp_upload_bits&#8217;     <br />&#8216;wp_user_dashboard_widgets&#8217;     <br />&#8216;wxr_export_skip_postmeta&#8217;     <br />&#8216;xmlrpc_blog_options&#8217;     <br />&#8216;xmlrpc_default_post_fields&#8217;     <br />&#8216;xmlrpc_default_posttype_fields&#8217;     <br />&#8216;xmlrpc_default_revision_fields&#8217;     <br />&#8216;xmlrpc_default_taxonomy_fields&#8217;     <br />&#8216;xmlrpc_default_user_fields&#8217;     <br />&#8216;xmlrpc_enabled&#8217;     <br />&#8216;xmlrpc_login_error&#8217;     <br />&#8216;xmlrpc_pingback_error&#8217;     <br />&#8216;xmlrpc_prepare_comment&#8217;     <br />&#8216;xmlrpc_prepare_media_item&#8217;     <br />&#8216;xmlrpc_prepare_page&#8217;     <br />&#8216;xmlrpc_prepare_post&#8217;     <br />&#8216;xmlrpc_prepare_post_type&#8217;     <br />&#8216;xmlrpc_prepare_taxonomy&#8217;     <br />&#8216;xmlrpc_prepare_term&#8217;     <br />&#8216;xmlrpc_prepare_user&#8217;     <br />&#8216;xmlrpc_wp_insert_post_data&#8217;</p>
<p style="text-indent: 0px">&#160;</p>
<p style="text-indent: 0px">今天先做一个总列表，后面我会对一些filters 消息标签作用，用户做一些收集。 这类标签基本涵盖了wordpress 所有操作功能。 能够通过filter 消息标签，将所有功能发送数据进行一次过滤。然后再作用到目标，数据源可以来自前端，数据库，或者网络接口读取。也欢迎，朋友们一起来补充这些消息标签。 </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.chacuo.net/88.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
