我一直认为Google reCAPTCHA是最好的表单验证插件,没有之一。
Gravity Forms作为WordPress界最强的表单插件之一,也提供了免费的表单验证功能,它接入的也是Google reCAPTCHA,可惜国内用户是无法直接使用的。因为谷歌API在原有域名下均已被阻断,但是部分有用的服务比如验证码、字体等,其实是有其他备用域名可以使用的,而Gravity Forms似乎并不太关心我们国内用户,所以就没有提供采用备用域名接口的选项,需要自己手动调整。 查看详细
我一直认为Google reCAPTCHA是最好的表单验证插件,没有之一。
Gravity Forms作为WordPress界最强的表单插件之一,也提供了免费的表单验证功能,它接入的也是Google reCAPTCHA,可惜国内用户是无法直接使用的。因为谷歌API在原有域名下均已被阻断,但是部分有用的服务比如验证码、字体等,其实是有其他备用域名可以使用的,而Gravity Forms似乎并不太关心我们国内用户,所以就没有提供采用备用域名接口的选项,需要自己手动调整。 查看详细
更新于2020年5月2日:本文第一版有一些概念错误,现已修正
基于WordPress项目的开发中,经常会需要用到AJAX请求。相较于原生的前后端实现,WordPress其实提供了两种方法可以更便捷的实现AJAX。
这个方法是现在用的比较多的。原理是前端向“/wp-admin/admin-ajax.php”这个接口发送请求,这个接口会根据请求的action值来处理数据。而根据不同的action值,利用钩子“wp_ajax_nopriv_[action]”和“wp_ajax_[action]”去编写自己的程序处理和返回数据。
如果是要写数据,先在页面生成nonce:
1 | $xprofile_nonce = wp_create_nonce ('xprofile_nonce'); |
今天在知乎上回答了一个我以前也被问起多次的问题,在此也发布一下自己的回答(略有修订)。
原答链接: https://www.zhihu.com/question/358785933/answer/1172467957
都2020年了,庞大的WordPress网站基数中,仅仅是博客的这一类网站占比已经不高了!
不错,WordPress一开始就是个博客(大约10年前)。然而现在用WordPress已能够很专业的搭建:
商城(b2b、b2c都可以);
社区(bbs,或者知乎这样的问答社区);
传统各行各业的企业网站(这类我已经做了上百个了)。
即使是做博客网站,WordPress也早就不是个人发布发布文章这么简单了,你可以用来搭建公共博客、wiki类型的,微博类型的。WordPress的博客,在更多时候已经变成了任何更复杂类型网站的一个常规附带。总之只要是市面上已经有成功案例的网站,WordPress都能模仿出它的业务原型。
然而,我们常见的情况是WordPress似乎都是小团队或个人在用,所以开发人员总体水平显得不太高,或者说用WordPress建站的企业本身对技术的投入就不高,所以做出来的低质量网站很多;另一方面,个人WordPress站长也很多,个人站通常自给自足,难看点也很正常,所以整体拉低了WordPress的案例水平。另外,很多人对WordPress的期待就是装个主程序,选个主题,再装几个插件就能弄出想要的网站,根本没有深入的研究WordPress到底好在哪里,或者还有哪些不足。这样的人,他们虽然用过WordPress,但是对WordPress给出的评价都是片面的。 查看详细
Gravity Forms(重力表单插件,本文简称GF)是一款公认十分强大的WordPress表单插件,不过其强大之处在我看来并不是选项多,操作简单等常规“小儿科”特性,这一点其实很多其他的表单插件都能做到。GF强大之处在于它提供了十分周全的API和文档让开发者能做进一步开发,满足用户更复杂的业务需求。这一点恐怕没有其他竞品可以与之相比。
表单插件虽然多,提供级联下拉菜单的表单插件恐怕就很少了。GF本身也没有提供,不过用户可以通过逻辑功能绕道在后台实现简单的级联菜单,方法是先放入一个一级菜单,再放入N个二级菜单,二级菜单默认全部隐藏,根据一级菜单的选项来显示对应二级菜单。这种实现方法比较直观,但如果一级菜单选项很多,那添加和维护就很吃力了。于是我尝试用GF提供的API自己定制一个级联菜单,选择中国所有34省级行政区下的对应城市/区。总共34个一级选项,五百多个城市子选项,这要在后台一一添加可真的是非常麻烦了。
先上结果图:
查看详细
给WooCommerce的订单页面添加自定义字段其实这也算是一个常见需求,有些人喜欢一碰到这类需求就找插件实现,其实大可不必。在WordPress里面找对钩子,添加对应的代码段就行了。
今天刚完成一个小需求如下:在WooCommerce的Checkout页面增加一个了解用户渠道的下拉字段,并且如果选了”Others”选项,会再多出现一个文本字段。下拉字段为必填,多出的文本字段为可选,效果如图:
查看详细
WordPress自定义文章类型调用模板有一个默认规则,即优先调用当前主题目录下的single-[type_name].php,这里的[type_name]为自定义类型的名字。比如自定类型为product,那么就优先调用single-product.php;如果single-[type_name].php不存在,则调用single.php;single.php不存在则调用index.php
对于列表页来说,则优先调用主题目录下的archive-[type_name].php;archive-[type_name].php不存在,则按顺序查找archive.php、index.php。
如果希望指定某个自定义文章类型调用某个模板,实现代码为: 查看详细
WordPress中最重要的活用就是自定义字段,它几乎涉及到了一切现有的业务模块,无论你是电商网站还是用户社区,自定义字段无处不在。有时候我们需要在别人现成的代码或主题里面挖一些资料,进行再开发。那么就需要知道特定的页面上究竟可以有哪些字段资源可用。
还是用我们熟悉的get_post_meta命令,但是这次只给一个参数,就能调出所有的自定义字段了:
1 2 3 4 | $myvals = get_post_meta($post_id); foreach($myvals as $key=>$val){ echo $key . ' : ' . $val[0] . '<br/>'; } |
就是这么简单!
———————
2023年10月更新:
在评论区有朋友留言反映用以下一行代码列出字段更为简单:
1 | the_meta(); |
这个方法在single页面的主循环中使用确实很简单有效,但它目前已经被官方文档标为弃用了,官方也是推荐一律使用get_post_meta方法调用自定义字段:
https://developer.wordpress.org/reference/functions/the_meta/
另外,经过对比the_meta方法输出的字段会过滤掉开头为下横杠”_”的字段名称,这类字段通常都是WordPress和WooCommerce等插件的保留字段,比如WooCommerce的这几个自己开发排序必用的字段:
_price – 价格
_wc_average_rating – 平均分
_wc_review_count – 评论数
都不在the_meta方法输出项内,所以建议还是不要用它了。
Gravity Forms提供了强大的表单系统,但是它的电话号码格式却没有11位手机号码的格式,虽然我们可以用International这个选项代替(就是不限制格式),但终归不够完美。查了一下官方文档,把这个需求给填上吧。
直接上代码:
add_filter( 'gform_phone_formats', 'brain1981_phone_format' ); function brain1981_phone_format( $phone_formats ) { $phone_formats['china mobile'] = array( 'label' => '手机号码', 'mask' => false, 'regex' => '/^1(?:3\d|4[4-9]|5[0-35-9]|6[67]|7[013-8]|8\d|9\d)\d{8}$/', //手机号码正则 'instruction' => "11位手机号码", ); return $phone_formats; } |
JennyStudio作为一家小而美的建站公司,已拥有数十家长期客户,其中更有多家上市公司。我们把接到的每一个项目都当作自己的孩子一样培育,由此获得了大量客户的信任和长期合同。我们尤其擅长基于WordPress和WooCommerce的定制网站开发,如您有这方面的需求,请移步JennyStudio上海网站建设。
基于WordPress和WooCommerce的网站开发,我们从不采用任何他人主题(无论免费还是收费主题),避免各种第三方不确定因素造成的技术困扰和侵权可能。
我们只做整站成品,为客户独立设计和开发定制自己的网站。因此我们出手的WordPress/WooCommerce网站不存在打开慢、设置烦、操作难、不符合中国人使用习惯等常见问题,更不可能和任何一个网站“撞脸”。
基于WordPress和WooCommerce做网站的公司有很多,他们中的绝大部分承接建站项目的流程是这样的:
买一款国外主题 -> 装几个插件 -> 配上客户自己的产品图片和文案 -> 上线
查看详细
置顶文章:这些年来我们已经积累了几十家客户,两百多个由我们独立完成的项目案例。JennyStudio作为一家正规建站公司,团队虽小,能量却很大,我们把每一个项目当作自己的孩子一样培育。长期承接外包项目,若你有WordPress相关的建站需求,微信小程序开发需求、H5页面设计制作需求,请移步JennyStudio上海网站建设。
我们尤其专长基于WordPress的各种类型的网站开发,和大部分靠WordPress吃饭的公司不同的是: 查看详细