add_meta_box()函数是被用来在文章编辑等页面添加一个设置的区域的函数。
创建的文章类型默认的仅有标题、作者、分类、标签、日期和评论,这些也许对博客已经足够使用了,但是对于产品类型的文章来说,不仅仅需要标题和正文,还需要单独设置一些其它的参数,如产品价格、产品型号、规格大小等,那么就需要给文章类型添加Meta Box,通俗点理解就是自定义字段表单,下面就来以实例讲解下这个函数的用法。
语法结构
<?php add_meta_box(
$id,
$title,
$callback,
$post_type,
$context,
$priority,
$callback_args
);
?>
参数
$id(字符串)(必需)字段id,唯一
$title(字符串)(必需)标题名称,显示在文章编辑页面
$callback(回调)(必需)回调函数
$post_type(字符串)(必需)文章类型
$context(字符串)(可选)显示位置,文章编辑页面包括’normal’, ‘side’, and ‘advanced’的形式,Menus meta boxes仅用’side’的形式
$priority(字符串)(可选)优先级,默认值: ‘default’
$callback_args(数组)(可选)传递到 callback 函数的参数。callback 函数将接收 $post 对象和其他由这个变量传递的任何参数。
实例
add_action( 'add_meta_boxes', 'product_price' );
function product_price() {
add_meta_box(
'product_price',
'产品价格',
'product_price_meta_box',
'store',
'side',
'low'
);
}
创建回调函数product_price_meta_box
配置参数里面指定了回调函数product_price_meta_box,需要在这个函数里面创建表单,
隐藏的自定义字段
插件/主题开发人员如果需要用自定义字段来保存插件或模板相关参数,会发现WordPress不会在页面/文章编辑页的自定义字段列表上显示以”_”(下划线)开始的关键字。这样就可以在自定义参数中将下划线作为第一个字符,这些设置将按自定义字段被保留,但却不会在管理者用户界面的自定义字段中显示出来。
function product_price_meta_box($post) {
// 创建临时隐藏表单,为了安全
wp_nonce_field( 'product_price_meta_box', 'product_price_meta_box_nonce' );
// 获取之前存储的值
$value = get_post_meta( $post->ID, '_product_price', true );
?>
<label for="product_price"></label>
<input style="width:180px" type="text" id="product_price" name="product_price" value="<?php echo esc_attr( $value ); ?>" placeholder="输入产品价格">
<span>价格</span>
<?php
}
提示:添加上面代码后,新建文章时,在右则就可以看到一个产品价格的输入框。
这时候表单还不能用,因为提交文章之后并没有保存这个 Meta Box 的内容,下面是验证保存内容的代码:
add_action( 'save_post', 'product_price_save_meta_box' );
function product_price_save_meta_box($post_id){
if ( ! isset( $_POST['product_price_meta_box_nonce'] ) ) {
return;
}
if ( ! wp_verify_nonce( $_POST['product_price_meta_box_nonce'], 'product_price_meta_box' ) ) {
return;
}
if ( ! current_user_can( 'edit_post', $post_id ) ) {
return;
}
if ( ! isset( $_POST['product_price'] ) ) {
return;
}
$product_price = sanitize_text_field( $_POST['product_price'] );
update_post_meta( $post_id, '_product_price', $product_price );
}
把上面的代码按顺序添加到主题的functions.php文件,至此,Meta Box注册完成,就可以开始添加参数了:
调用代码
<?php
if(get_post_meta($post->ID,'_product_price',true)){
echo get_post_meta($post->ID,'_product_price',true);
}
?>
把META BOX添加把后台所有产品列表字段中显示
通过manage_$post_type_posts_custom_column实现,代码如下
add_filter('manage_store_posts_columns', 'add_new_product_columns');
function add_new_product_columns($columns) {
$columns['id'] = 'ID';
$columns['product_price'] = '产品价格';
return $columns;
}
add_action('manage_store_posts_custom_column', 'manage_posts_columns', 10, 2);
function manage_posts_columns($column,$id) {
global $post;
switch ($column) {
case 'id':
echo $id;
break;
case 'product_price':
echo get_post_meta( $post->ID, '_product_price', true );
break;
}
}
1 CDN是什么?有什么用?
如何10倍提升外贸网站速度?从而提高谷歌搜索排名?
内容分发网络
”。在本文中,我们将分享可以帮助你加快外贸网站速度的WordPress最佳CDN服务。
多年来MaxCDN是个非常流行的CDN服务,特别是对于WordPress用户:
但是,Stackpath为你提供了很多选择,你可以选择特定服务,或者使用包含CDN、防火墙、托管DNS、全球DDoS保护等的完全“边缘交付包”。
Stackpath的全球DDoS保护:
目前,Stackpath 在除非洲之外的每个宜居大陆上,提供了35个以上的CDN节点。 你可以查看以下地图 ▼
点此进入 Stackpath官网 查看最新全球CDN节点
Stackpath的优点有哪些?
第1步:注册StackPath CDN 账号▼
点此进入 StackPath CDN 官网
输入邮箱和密码,并单击“Create an Account”按钮,创建一个帐户 ▼
第 2 步:需要选择一项StackPath服务。StackPath提供网站和应用程序服务以及边缘计算服务 选择一“网站和应用程序服务” ▼
第 3 步:选择StackPath的 CDN ▼
第 3 步:通过发送到你的电子邮件帐户的链接验证你的电子邮件地址后,它会将你重定向到付款页面 ▼
第 4 步:在StackPath仪表板中,单击Site选项卡 ▼
第 5 步:创建StackPath CDN站点 ▼
在大多数情况下,这是网站的URL。
bucket
.s3- aws-region
.amazonaws.comaws-region
.amazonaws.com /bucket-name
第 6 步:将StackPath CDN URL粘贴到Autoptimize插件的CDN Base URL字段中 ▼
http://
或 https://
才能使用Autoptimize 插件。第 7 步:在StackPath中转到CDN→CACHE SETTINGS(缓存设置)▼
第 8 步:在StackPath中将你的服务器IP地址列入白名单(WAF→防火墙) ▼
在GTmetrix中测试运行你的站点 ,YSlow中的“内容交付网络”应为绿色 ▼
如果使用WordPress建站,可以安装WordPress插件Autoptimize。
Google字体:
优化图片:
图像优化质量:
删除Emojis:
从静态资源中删除查询字符串:
预连接到第3方域名:
https://fonts.googleapis.com https://fonts.gstatic.com https://www.google-analytics.com https://ajax.googleapis.com https://connect.facebook.net https://www.googletagmanager.com https://maps.google.com
异步Javascript文件:
优化YouTube视频:
到此,我们已经完成了Autoptimize设置中对StackPath CDN的配置。
点此进入 StackPath CDN 官网
希望我们网站( https://www.wordpressx.com/ ) 分享的《国外CDN服务商外贸免备案推荐:Stackpath CDN设置教程》,对您有帮助。
init 钩子在大多数的 WordPress 程序都加载之后进行加载。WordPress 同样添加许多内部的功能到这个钩子中,例如 post types 和 taxonomies 以及默认 widgets 的初始化。
加载这个钩子时几乎 WordPress 中的所有内容都就绪了,当 WordPress 的所有信息都可用时,你的插件使用这个钩子差不多可以做任何想做的事情了。
下面的例子中,为用户添加了product post type形式
function my_custom_post_product() {
$args = array();
register_post_type( 'product', $args );
}
add_action( 'init', 'my_custom_post_product' );
bloginfo() 直接在浏览器中输出内容,我们创建一个wordpress博客的时候,我们需要填写博客的相关信息,包括博客名称,博客描述,博客地址等等。当我们需要使用这些信息的时候,就可以使用bloginfo()函数来获取wordpress博客的相关信息。
语法结构
<?php bloginfo( $show ); ?>
参数:
$show (字符串string) (可选)你需要输出的信息的关键词。 默认值: name
‘name’:显示在 设置 -> 常规 中设置的“站点标题”。该数据是从 wp_options 这个数据表中检索到的 “blogname”记录。
‘description’:显示在 设置 -> 常规 中设置的“副标题”。该数据是从 wp_options 这个数据表中检索到的 “blogdescription” 记录。
‘admin_email’:显示在 设置 > 常规 中设置的 “电子邮件地址”。该数据是从 wp_options 这个数据表中检索到的 “admin_email”记录。
‘charset’:显示在 设置 > 常规 中设置的“页面和feed的编码”。该数据是从 wp_options 这个数据表中检索到的”blog_charset” 记录。(注:3.5.1+好像已经没有这个选项了)
‘html_type’:显示WordPress HTML 页面中的内容类型(默认: “text/html”)。该数据可以从 wp_options 这个数据表中检索到的 “html_type” 记录。主题和插件可以通过使用 pre_option_html_type 过滤器覆盖默认值。
‘language’:显示WordPress的语言。
‘wpurl’:显示在 设置 > 常规 中设置的 “WordPress 地址 (URL)”。该数据是从 wp_options 这个数据表中检索到的 “siteurl” 记录。 可以考虑使用 site_url() 来代替,尤其是在使用 子目录路径方式,而不是使用 子域名 来配置多站点时(bloginfo将返回根网站的URL,而不是子站点的URL)。
‘url’:显示在 设置 > 常规 中设置的 “站点地址(URL)”。该数据是从 wp_options 这个数据表中检索到的 “home”记录。 可以考虑使用 home_url() 代替。
‘stylesheet_url’:显示当前使用的主题的 CSS文件(通常为 style.css)路径。可以考虑使用 get_stylesheet_uri() 代替。
‘template_url’/’template_directory’:当前主题的 URL 路径 。在子主题中, get_bloginfo(‘template_url’) 和 get_template() 都将返回父主题的目录。可以考虑使用 get_template_directory_uri() (用于父主题目录)或get_stylesheet_directory_uri() (用于子主题目录)代替。
‘stylesheet_directory’:显示当前使用的主题的样式表路径。可以考虑使用 get_stylesheet_directory_uri() 代替。
示例输出
name = 获得更好的笔记查询体验
description = 又一个WordPress站点
admin_email = admin@example.com
charset = UTF-8
html_type = text/html
language = en-US
wpurl = http://coding.xuxiaoke.com/(获得安装路径)
url = http://coding.xuxiaoke.com/(获得首页地址)
stylesheet_url = http://www.example.com/home/wp/wp-content/themes/bluesky/style.css
stylesheet_directory = http://www.example.com/home/wp/wp-content/themes/bluesky
template_directory = http://www.example.com/home/wp/wp-content/themes/bluesky
template_url = http://www.example.com/home/wp/wp-content/themes/bluesky
text_direction = ltr
version = 3.5
home = http://www.example.com/home (已弃用!使用 url 替代)
siteurl = http://www.example.com/home (已弃用!使用 url 替代)
add_settings_section()函数的作用主要是为WordPress后台-Settings里面的某个栏目添加一个能够实现add_settings_field( )函数添加自定义变量的区域,与add_settings_field( )函数配合使用可以实现Settings里面的某个栏目(’general’, ‘reading’, ‘writing’, ‘discussion’, ‘media)添加自定义变量的功能。
用法
<?php
add_settings_section(
string $id,
string $title,
callable $callback,
string $page
) ;
?>
例子:
<?php
add_settings_section(
'xk_settings_section', // 此处自己命名,用于标签的ID属性
'联系方式', // 显示在页面的标题
'xk_settings_section_callback', // 页面回掉
'general' // 设置里面的栏目包括:'general', 'reading', 'writing', 'discussion', 'media'
);
?>
相关函数:add_settings_field( )函数
register_setting()函数
实战案例可在register_setting()函数查看