这次的文章标题有点拗口,其实用一张图概括就是这样的:
在文章列表页,点击“快速编辑”,展开的选项栏叫做快速编辑栏。我们可以把一些经常要修改的文章字段放到快速编辑栏里,这样就可以在列表页直接修改这些字段,而不用进入下级的文章页了,可以从而节约时间。 查看详细
这次的文章标题有点拗口,其实用一张图概括就是这样的:
在文章列表页,点击“快速编辑”,展开的选项栏叫做快速编辑栏。我们可以把一些经常要修改的文章字段放到快速编辑栏里,这样就可以在列表页直接修改这些字段,而不用进入下级的文章页了,可以从而节约时间。 查看详细
这次要实现的功能是在WordPress后台的文章列表中,添加一键复制文章的按钮。完整地复制一篇文章,除了要复制文章内容外,还要复制文章所有的分类信息和关联字段,这是复制功能的核心。另外要实现这个功能还要带上一些后台的交互,为了避免不小心点到这个按钮徒增不必要的数据,还需要做个二次确认框,效果是这样的。
先要通过post_row_actions钩子增加一个”Duplicate”按钮(其实是个链接)
1 2 3 4 5 6 7 | function brain1981_duplicate_post_link( $actions, $post ) { if (current_user_can('edit_posts')) { $actions['duplicate'] = '<a href="###" data-url="'. wp_nonce_url('admin.php?action=brain1981_duplicate_post&post=' . $post->ID, basename(__FILE__), 'duplicate_nonce' ) . '" title="Duplicate it" rel="permalink" class="duplicate-trigger">Duplicate</a>'; } return $actions; } add_filter('post_row_actions', 'brain1981_duplicate_post_link', 30, 2 ); |
给WooCommerce产品页面添加自定义字段,并使其影响价格,在很多电商的场景中会需要这个功能。注意这里强调的是用户自定义字段,而非我之前写的 博客 介绍的产品自定义字段,两者不是一个东西。
举几个例子:
WooCommerce产品用户自定义字段,英文翻译叫做“WooCommerce product add-on”,在产品页面上可以这样表现:
我们可以同时添加多个字段,也可以用select、radio、checkbox,datepicker,甚至是file uploader做自定义字段。
要实现这个功能,市面上已经有不少插件了,在官方插件市场上搜一下“WooCommerce product add-on”关键词,就能找到不少同类插件。我测试过过几款,发现功能都差不多,它们也都有免费版和收费版两个版本。一般来说,这类插件的免费版提供各种常规类型的自定义字段,收费版则提供一些特殊类型的自定义字段。另外如果你需要通过这些字段影响商品价格,这个功能我没有在免费版里见过,都需要购买付费版实现。付费版价格在39 – 69美元之间,看上去并不贵。但我的原则仍然是能不用插件就不用,需要用户自定义字段的场景,实际上字段都不多,这个功能不复杂,完全可以自己写出来。 查看详细
WordPress在get_posts或WP_Query方法中,活用meta_query,可以变换出无数种高级检索,是WordPress的入门技能。
最简单的用法,查询自定义字段“post_color”值为“red”的文章
$arr = array( 'post_type', => 'post', 'meta_key' => 'post_color', 'meta_value' => 'red' ); $myPosts = new WP_Query( $arr ); |
引入meta_compare参数,查询自定义字段“post_color”值不为“red”的文章
$arr = array( 'post_type', => 'post', 'meta_key' => 'post_color', 'meta_value' => 'red', 'meta_compare' => '!=' ); $myPosts = new WP_Query( $arr ); |
下面开始进阶用法,首先要换一种写法,把所有自定义字段相关的参数都打包到meta_query参数中,效果和上面一段一样:
$arr = array( 'post_type', => 'post', 'meta_query'=> array( 'key' => 'post_color', 'value' => 'red', 'compare' => '!=' ) ); $myPosts = new WP_Query( $arr ); |
WordPress的文章、页面或者自定义文章类型开启特色图片,通过注册这个类型时,在support中添加参数“thumbnail”实现,比如:
register_post_type('My CPT', array( 'label' => 'my_cpt', 'description' => '', 'public' => true, 'show_ui' => true, 'show_in_menu' => true, 'capability_type' => 'post', 'hierarchical' => false, 'rewrite' => array('slug' => 'product'), 'query_var' => true, 'supports' => array('title','editor','thumbnail') //这里有了thumbnail就能为my_cpt这个类型添加缩略图 ) ); |
这个缩略图有没有可能变成多张呢?比如这样:
查了老半天,WordPress本身并没有提供多张特色图片的API,但这个功能完全可以通过自定义字段实现。本文即是这个原理 查看详细
给WooCommerce的订单页面添加自定义字段其实这也算是一个常见需求,有些人喜欢一碰到这类需求就找插件实现,其实大可不必。在WordPress里面找对钩子,添加对应的代码段就行了。
今天刚完成一个小需求如下:在WooCommerce的Checkout页面增加一个了解用户渠道的下拉字段,并且如果选了”Others”选项,会再多出现一个文本字段。下拉字段为必填,多出的文本字段为可选,效果如图:
查看详细
WordPress中最重要的活用就是自定义字段,它几乎涉及到了一切现有的业务模块,无论你是电商网站还是用户社区,自定义字段无处不在。有时候我们需要在别人现成的代码或主题里面挖一些资料,进行再开发。那么就需要知道特定的页面上究竟可以有哪些字段资源可用。
还是用我们熟悉的get_post_meta命令,但是这次只给一个参数,就能调出所有的自定义字段了:
1 2 3 4 | $myvals = get_post_meta($post_id); foreach($myvals as $key=>$val){ echo $key . ' : ' . $val[0] . '<br/>'; } |
就是这么简单!
在WordPress中如果要更新某个自定义字段,只需要用到函数update_post_meta()就可以了。在执行update_post_meta的时候,WP会查找到你要更新的字段,如果没有符合条件的字段,WP会用add_post_meta添加新的字段,不用人工写判断,很方便。
使用add_post_meta添加新字段时,如果添加了参数$unique为true,WP会查找有没有相同键名(meta_key)的字段,如果有,则不会添加任何东西。
删除自定义字段delete_post_meter也不需要预先判断有无字段,如果没有该字段,delete_post_meter会返回false值。
相关文档:
https://codex.wordpress.org/Function_Reference/add_post_meta
https://codex.wordpress.org/Function_Reference/update_post_meta
https://codex.wordpress.org/Function_Reference/delete_post_meta
查看详细
在WordPress构建的网站上我们经常要定义一些全站通用的数据,比如联系方式、公司简介等,这些数据可能会在网站的任何地方被调用,比如首页、相关内页、每个页面的头部和底部等。个人喜欢称这样的数据为通用字段。既然叫通用字段,顾名思义就是存在于数据库里的一条可以被随处调用的数据,WordPress的options表提供了这样的便利。需要注意的是通用字段和自定义字段的概念区别,前者保存在options表中,而自定义字段则保存在postmeta表中。options表一般用来保存一些网站全局设置和插件设置,而保存自定义字段的postmeta表则保存的是用于和文章、页面、菜单等关联的字段。
WordPress封装好的操作options表最重要的函数就是 update_option ,本文通过一个最简单的实例介绍通用字段的操作。
首先看下我要定制的这个后台功能截图:
查看详细
WooCommerce无疑是打造基于WordPress的购物网站最有力的插件了。WooCommerce本身是一款免费的插件,但它提供了丰富的扩展接口,为网站的进一步开发提供了无限的可能。
定制WooCommerce商城网站,有时候我们需要为产品添加一些参数,比如在一个珠宝商城中,每个珠宝都要有主石、主石颜色、主石重量…等参数,为了规范管理和方便调用,这些参数最好都写到自定义字段中去。这里整理一下对产品追加自定义字段的笔记。
WooCommerce产品的自定义字段,在后台就放在常规选项卡中,添加了自定义字段的表现为:
查看详细