我们最近帮客户开发了一个讨论组小程序,支持小程序前端用户发布帖子,并且帖子也支持设置标签或者分组。...为了尽量复用 WordPress 的能力,我们使用注册了 topic 这个文章类型,然后也注册了 group 这个分类模式。...一切都很完美,但是用户选择的分组始终无法关联上,经过仔细查询创建文章的代码(wp_insert_post)才知道,文章类型关联分类模式的代码如下: if ( current_user_can( $taxonomy_obj...->cap->assign_terms ) ) { wp_set_post_terms( $post_ID, $tags, $taxonomy ); } 由上代码可知,给文章类型关联分类模式之前,会判断当前的用户拥有当前分类模式分配的权限...所以我只需要在注册分类模式的时候,设置分类模式分配的权限为 read,即普通用户也拥有权限,具体的代码如下: register_taxonomy('group', [ 'label' => '分组
在上一篇文章中,我们介绍了WordPress 世界的过滤器;本篇文章的话我们将要探索50个笔者精选的过滤器,并一一通过例子解释其如何工作的。 事不宜迟,让我们开始吧!...> 为标签添加自定义CSS类 WordPress 的body_class()函数是一个非常不错的函数。...它在不同的页面情况下提供了不同的相应语义化的CSS 标签,使得你的CSS 能更有效率。同样的,通过“过滤”body_class()函数,你可以添加后删除相关的类。...> 过滤文章的文本内容 这个就不用多介绍了,用到的是the_content的函数,直接上例子: 例子:移除包裹在标签上的标签 WordPress 默认并不允许我们单独在一个段落中展示图片...()函数移除HTML标签 下面找个函数可以让the_terms()函数在输出时候不包括HTML标签(纯文本),顺带一提,strip_tags是PHP 中剥去 HTML、XML 以及 PHP 的标签的函数
之后,您还可以将自己的自定义CSS类添加到body元素。您可以在需要时添加这些类。 例如,如果要更改特定类别下的特定作者的文章外观。...如何添加自定义body类 WordPress有一个过滤器,您可以在需要时使用它来添加自定义body类。...在向您展示特定用例场景之前,我们将向您展示如何使用过滤器添加body类,以便每个人都可以在同一页面上。...add_filter('body_class','my_class_names'); 上面的代码会将“ wpb-class”类添加到网站每个页面上的body标签中。...: 您可能需要查看可在WordPress中使用的条件标签的完整列表。
本文为系列第三篇,原文:50 Filters of WordPress: Filters 31-40 原文地址 在过去的两篇文章中,我们总共介绍了30个WordPress 的过滤器。...> 上面的代码起作用后,标签不会主动添加到[ gallery]这个短代码中。 过滤附件url 相关过滤器名称为wp_get_attachment_url()。...该如何操作?使用这个wp_revisions_to_keep过滤器试下。 禁止某些特定文章类型使用“修订版本”功能 下面的代码需要修改$post变量为你的,代码中为“even”。 <?...> 添加文章CSS类名 body_class这个过滤器在WordPress 开发中常常用到,那么你知道有个post_class过滤器可以让你在文章内添加自定义的CSS 类吗?...处理后台仪表盘中的“批量操作”功能 在WordPress的仪表盘那里罗列着类似文章、页面、用户、多媒体等等的栏目,当你点击某个栏目可以进行批量操作。下面讲到的过滤器会让你处理下这小小的下拉菜单。
我们在 WordPress 发表文章的时候,有时会遇到一些特殊的需求,比如把文章中的链接变成可点击,或者过滤掉文章内容 HTML 标签中的某种属性等。...解决思路 如果想要过滤掉发布文章时,文章内容中 HTML 标签中的 class、id 和 style 等属性,首先需要在摁下“发表”按钮的时候,使用 PHP 正则匹配对要发表的文章内容进行正则匹配处理,...所以这个问题就分成了几个小步骤: “获取”文章内容,传递给处理函数 处理函数使用正则匹配对文章内容进行处理 将处理好的内容返回,让 WordPress 把内容插入数据库 解决方案 面对第一个步骤,WordPress...add_action 或者 add_filter 函数挂上这个“钩子”,并增加自定义的函数对数据进行一个动作或者进行过滤。...首先,你需要找到你要用的“钩子”,你需要浏览 WordPress 官方的 Filter Reference 和 Action Reference 文档,里面是长长的“钩子”列表,看一下下面的说明,然后找到对应的
相信你知道WordPress 标签云widget(小工具)是什么,如果你的WordPress 主题支持小工具,就可以在后台启用标签云小工具,该小工具不仅能展示标签也能展示分类目录。...还好WordPress 官方提供了widget_tag_cloud_args 这个过滤器(filter)来让开发者在不改动WordPress 核心文件的基础上自定义相关显示参数。...下面结合使用教程来进一步说明: 在主题的functions.php 文件下加入以下代码就可以自定义WordPress 标签云小工具相关参数: //custom widget tag cloud add_filter...; orderby:调用标签的排序,默认为“name”按名称排序,“count”则按关联的文章数量排列; order:排序方式,默认为“ASC”按正序,“DESC”按倒序,“RAND”按任意顺序。...在这里提供本站 DeveWork.com 下面中间的 标签云 小工具的自定义代码(过滤器名称不一样,功能一样): add_filter('widget_tag_cloud_args','style_tags
在这样的观点设计下,WordPress的超级管理员可以直接修改后台插件模板来getshell,超级管理员的评论不会有任何过滤。...所以在WordPress的防御体系下,如何绕过Nonce、如何获取超级管理员权限、如果在非超级管理员权限下做任何可以威胁网站安全操作,就是WordPress安全漏洞的主要方向。...wp_filter_post_kses() else: wp_filter_kses() 而其中的区别就是,wp_filter_post_kses不会做任何过滤,会保留请求的完整评论...,而wp_filter_kses将只允许白名单的标签存在,就比如a标签等。...而问题的核心就在于,如何在wp_filter_kses的白名单中找到一个可以导致xss的输入点。这个点就在a标签的rel属性处理中。
gettext这个过滤器可以让你在WordPress 中轻松玩转可翻译的数据。...这个便捷的过滤器可以让你指定哪个短代码不经过函数运行,详情见官方文档。...> 过滤评论的批准状态 在一条评论是否被认定为垃圾评论前WordPress 会有一个算法去判别,然后才去加入评论队列中。...> 过滤页面标题 WordPress 中通过wp_title()函数输出页面标题——就是你在浏览器标签栏上看到的那个。...例子:重写页面标题(正确的方式) 这篇文章解释了如何自定义页面标题,详细你可以查看全文,这里直接给出个核心的例子: <?
本文为系列第四篇,原文:50 Filters of WordPress: Filters 21-30 原文地址 在过去的两篇文章中,我们总共介绍了20个WordPress 的过滤器。...过滤搜索查询 在一个WordPress 站点中,搜索是最常用到的功能。借助这个过滤器,你可以非常灵活地处理SQL 查询。...> 过滤文本小工具 WordPress 默认的小工具都有相关的过滤器。比如文本小工具的就是widget_text。 让文本小工具支持短代码 <?...> 修改摘要中的more标签 WordPress 默认的在首页输出的摘要会截取55 个单词,余下的会用[...] 代替之。幸运的是,excerpt_more 这个过滤器让我们可以轻易修改之。...> 管理文章列表的栏目 在仪表盘的所有文章页面,你可以查看你当前发表的文章——包括其他诸如作者、分类、标签的额外信息。
而说到复杂点的用法,你甚至可以利用query_posts来查询某一分类目录下某个作者发表的、带有某个标签的特定数量文章等。下面介绍的是一些更实用的用法。...关于日志顺序 默认情况下WordPress日志是按日期顺序排列的,这也是大多数人的需求,不过如果能更改默认的排列顺序那就更好了。 例如你可以随意调用几篇日志,让它们显示在侧边栏。...钩子(hooks)和过滤器(filter) Query_posts函数一个鲜有人知的功能就是,你可以用它勾入已生成的查询。 这种行为可能有些冒险,不过实用价值很高。...WordPress有一些可以用来修改查询要素的过滤器(filter)函数。...根据对WordPress filter函数的介绍,可以用在文章查询和调用上的filter包括: post_limits 应用于查询的LIMIT语句,该语句可返回日志数组 posts_distinct
在 WordPress 中,使用 WP_Query 进行文章查询是最常见的操作,学习好这方面的操作, WordPress 开发基本就学会了一半。...「WordPress果酱」将通过一系列教程讲解如何使用 WP_Query 进行 WordPress 文章查询。...第一讲,把 WP_Query 最常用的分类,标签和分类模的所有相关的参数讲解一下,例子也是来自官方文档,学完之后,你可以在 WordPress 进行非常复杂的多重筛选。...获取含有几个分类(只要含有一个)的文章(注意这些分类的子分类单独关联的文章不会获取): $query = new WP_Query( array( 'category__in' => array( 2...三、真正的王炸:tax_query tax_query 参数是 WordPress 3.1 版本引进的,WordPress 非常复杂的多重筛选就是使用它实现的,我们将通过几个例子讲解怎么实现。
当然,版本号参数的存在是有很大的意义的——可以让浏览器处理好缓存与更新静态资源的关系。如果你不喜欢WordPress 加载的静态文件会自动添加版本号参数的做饭,你可以用下面的代码删除之: <?...下面的过滤器可以让你设置这个时间区间或者说移除WordPress 的这个机制。 例子:让访客评论间隔更长一点 下面的代码设置为60秒的连续评论间隔时间差。 <?...> 修改“概览”部分的栏目 WordPress 的“概览”栏目可以让你知道总体的文章数量,页面数量,评论数量等。...当用户注册成功时候重定向 相关过滤器为registration_redirect 例子:让新用户下载你的电子书 如果你是提供电子书给你的注册用户,那么你可以让他们注册后就跳转到有下载链接的页面,类似下面的代码...) 更改评论表单的域 WordPress 中comment_form()使用展示评论表单,下面的例子让你可以自定义之: 例子:移除表单的url 域 <?
WordPress模板的定义非常方便,但是在定制模板之前,我们有必要知道WordPress的模板层次,了解WordPress是如何加载模板文件的,这将有利于开发模板时合理利用资源及提高工作效率。...模板都没有则加载 index.php 模板 分类页 首先被考虑的是 category-{slug}.php 别名模板(如分类别名是 news 对应的文件名就是 category-news.php )...自定义分类法 有时候除了WordPress默认的分类目录和标签我们还需要其他的分类方法,这时候我们就会注册一个新的分类法,那么在此之前知道分类法的模板加载顺序也是十分必要的。...",false); return $templates; } add_filter( 'page_template', 'page_template_filter' ); 模板页面判断 一般情况下,在一个特定的模板中我们能清楚知道应该怎么输出特定的样式和内容...,如 is_home() 则是判断首页的条件标签,is_single() 则是判断文章页的条件标签,等等。
body_class 函数如何使用? body_class 函数的使用方法非常简单,只需要用下面语句替换掉原来的 body 标签即可: 的输出类让前端方便进行控制,那么了解这个函数的输出规则就非常有必要了,下面针对不同类型的页面介绍一下它的输出规则: 首页(Front Page) 这里的首页,就是打开你的博客看到的第一个页面...介绍完了 body_class 函数根据当前页面自动输出类的规则之后,我们来介绍一下如何自定义输出的类。...但是这样自定义是完全没有什么价值的,我们往往希望通过更详细的判断语句来判断出某些特定的页面,然后增加相应的类。这样,就需要 WordPress 强大的条件判断标签了。...这里推荐一下 我爱水煮鱼 博客翻译编写的 WordPress 条件判断标签及其使用方法。
什么是 WordPress 过滤钩子(Filter) 在 WordPress 官方开发文档里面,过滤钩子(filter)是这样定义的: 过滤钩子是一类函数,WordPress 执行传递和处理数据的过程中...我们来看看他是如何工作的: filter( $tag, $function_to_remove, $priority ); ?...> 如果你想让人们过滤这句话(将你的插件代码放在一边),你需要向下面那样使用 apply_filters() 这个函数: 如何在你的插件或者主题中创建过滤钩子和动作钩子。 结论 你用过滤钩子用的越多,你就会感觉到越有趣。...WordPress 有几百个过滤钩子,学习这些过滤钩子,你将会成为 WordPress方面的专家,在下一部分,我们将要学习下面这十个 WordPress 过滤钩子: login_errors comment_post_redirect
开启「图片处理」选项之后,才会有「图片设置」这一标签页: 在这个界面把以前一些默认就有的功能,也提供了开关,省的功能做的那么多,还被嫌弃。 你也可以根据自己的喜好进行选择。 4....最后新增了一个函数 wpjam_list_filter,相对于 WordPress 自己的 wp_list_filter 函数,支持 in_array 判断,这个你有使用场景的时候就很有用。...比如我们获取一组 $posts,然后我们只要 post_type 为 'post' 的 post,我们可以使用 WordPress 的提供的函数 wp_list_filter 进行过滤: $posts...= wp_list_filter($posts, ['post_type'=>'post']); 如果要 post_type 为 'post' 或者 'page' 的 post,那这个函数就无能为力,所以我改进增强了一下...,实现了 wpjam_list_filter 函数,支持 in_array 判断: $posts = wpjam_list_filter($posts, ['post_type'=>['post', '
wordpress很强大,能当博客也能进行二次开发出很完善的内容管理系统满足企业运营需求,比如可以添加products产品模型、汽车模型等,如何实现呢?...' => 'example', // string|array (默认为 'post') // 是否让 WordPress 映射权限元数据 (edit_post..., read_post, delete_post),如果设置为 FALSE, 我们需要自己通过 //过滤 “map_meta_cap” 钩子来设置文章类型权限 'map_meta_cap...'post-formats',// 显示文章格式元数据盒子,并允许该文章类型使用文章格式 ), // 标签用来在管理界面或前端显示该文章类型的名称,标签参数不会自动改写文章更新...、错误等信息中的字段,我们需要过滤 // 'post_updated_messages' 钩子来自定义这些消息。
' => 'example', // string|array (默认为 'post') // 是否让 WordPress 映射权限元数据 (edit_post...'post-formats',// 显示文章格式元数据盒子,并允许该文章类型使用文章格式 ], // 标签用来在管理界面或前端显示该文章类型的名称,标签参数不会自动改写文章更新...WordPress 为我们提供了一个过滤器register_post_type_args,使用这个过滤器,可以修改现有文章类型的参数,从而对已注册的文章类型的属性进行修改,可以多次任意修改。...如上图所见,现在可以在后台中看到这个post type了,还有一个问题,名字不对,这是因为刚才我们注册的时候只是定义了类别的名称(相当于学名),没有定义一个具体的描述性的名字(相当于小名)。...使用代码的方式比较重,比较麻烦,不适合普通用户,而且我也没有这方面的需求,就不写了,感兴趣的可以看看这篇文章: 如何修改自定义文章类型的固定链接 这方面最好的插件就是 Custom Post Type
Content(内容) Post Type(帖子类型) Category and Tag (类别和标签) Exceprt(摘录) Meta Permalink or Slug (固定链接) Gravatar...Category and Tag (类别和标签) 当您在 WordPress 网站上创建博客文章(或其他部分的文章)时,您可以选择组织您的内容。为了可视化,类别是您帖子的主要分组。...例如,如果您访问新闻博客,您可能会看到“新闻”或“技术”的类别。标签更具体,通常你会发现一个博客会有很多标签。...Widget(小部件) 小部件是显示特定信息或执行特定功能的小组件。一些示例是博客类别列表、日历、天气应用程序、标签云、搜索或社交。小部件可以做很多事情!...您可以通过在帖子和标题中使用相关标签、类别和关键字,以及通过编写标题来告诉访问者您的帖子是关于什么的,来改进您的WordPress SEO 。
WordPress 6.0 新增了一个新的 filter 接口:wp_content_img_tag,可以用来调整通过 the_content filter 处理之后的内容中的图片标签。...在 WordPress 6.0 版本之前,如果要修改图片标签,就是用和 wp_filter_content_tags() 函数中一样复杂的正则表达式来匹配图片,这样增加了程序的复杂性和服务器的开销,所以这个新的...如何使用 wp_content_img_tag filter 支持下面这些参数 $filtered_image: 字符串,含有将替换原始图片标签的属性的完整 img 标签。...$attachment_id: 图片的附件 ID,如果不是媒体库里的图片则为0。 这个 filter 必须返回字符串,然后替换传递给过滤器的 img 标签。...函数最初引入只是为了让图片支持延迟加载功能, 现在已经成为了修改内容中图片标签以实现各种功能增强的标准方法,现在 6.0 版本引入 wp_content_img_tag filter 通过让开发人员可以通过插件实现定制来进一步增强它的能力
领取专属 10元无门槛券
手把手带您无忧上云