创建一个新的 Post Type 需要使用 register_post_type 函数注,在你主题的 functions.php 文件下调用该函数:
register_post_type( $post_type, $args );
//$post_type 参数就是你自定义 Post Type 的名称。
function my_custom_post_product() {
$args = array();
register_post_type( \'product\', $args );
}
add_action( \'init\', \'my_custom_post_product\' );
参数很多,为了写教程方便,只列出比较常用的参数,大体结构如下:
function my_custom_post_site() {
$labels = array(
\'name\' => _x( \'网址导航\', \'post type 名称\' ),
\'singular_name\' => _x( \'网址\', \'post type 单个 item 时的名称,因为英文有复数\' ),
\'add_new\' => _x( \'新建网址\', \'添加新内容的链接名称\' ),
\'add_new_item\' => __( \'新建网址\' ),
\'edit_item\' => __( \'编辑网址\' ),
\'new_item\' => __( \'新网址\' ),
\'all_items\' => __( \'所有网址\' ),
\'view_item\' => __( \'查看网址\' ),
\'search_items\' => __( \'搜索网址\' ),
\'not_found\' => __( \'没有找到有关网址\' ),
\'not_found_in_trash\' => __( \'回收站里面没有相关网址\' ),
\'parent_item_colon\' => \'\',
\'menu_name\' => \'网址\'
);
$args = array(
\'labels\' => $labels,
\'description\' => \'网址信息\',
\'public\' => true,
\'menu_position\' => 5,
\'supports\' => array( \'title\', \'editor\', \'thumbnail\', \'excerpt\', \'comments\' ),
\'has_archive\' => true
);
register_post_type( \'site\', $args );
}
add_action( \'init\', \'my_custom_post_site\' );
将上面代码加到主题 functions.php
的最下面,进入后台你会发现多出了 site
选项,这样注册成功
这时候我们可以新建 site
发表一篇电影类型的文章了。但是这样与文章类型基本相同,我们需要更多的自定义来完善我们的 site
类型。
添加分类功能需要使用函数 register_taxonomy,使用方法也很简单,跟注册 Post Type 函数类似,只不过多了一个参数用来指定对应的 Post Type :
register_taxonomy( $taxonomy, $object_type, $args );
就本例而言,可以配置如下常用参数:
function my_taxonomies_site() {
$labels = array(
\'name\' => _x( \'网址分类\', \'taxonomy 名称\' ),
\'singular_name\' => _x( \'网址分类\', \'taxonomy 单数名称\' ),
\'search_items\' => __( \'搜索网址分类\' ),
\'all_items\' => __( \'所有网址分类\' ),
\'parent_item\' => __( \'该网址分类的上级分类\' ),
\'parent_item_colon\' => __( \'该网址分类的上级分类:\' ),
\'edit_item\' => __( \'编辑网址分类\' ),
\'update_item\' => __( \'更新网址分类\' ),
\'add_new_item\' => __( \'添加新的网址分类\' ),
\'new_item_name\' => __( \'新网址分类\' ),
\'menu_name\' => __( \'网址分类\' ),
);
$args = array(
\'labels\' => $labels,
\'hierarchical\' => true,
);
register_taxonomy( \'sitecat\', \'site\', $args );
}
add_action( \'init\', \'my_taxonomies_site\', 0 );
添加到主题之后,我们看到出现了熟悉的文章分类功能,只不过上面的文案全部变成我们自定义的内容了
为 Post Type 添加自定义 Meta Box
我们想要添加的电影类型不能仅仅只有正文内容,我们还需要额外添加一些 导演 之类的有关内容。那么就需要添加自定义 Meta Box,Meta Box 可以在文章发表页面中添加自定义的表单,编写文章的时候可以填写额外的信息然后在前端调用出来。
自定义 Meta Box 需要用到 add_meta_box 函数:
add_meta_box( $id, $title, $callback, $post_type, $context,$priority, $callback_args );
我们注册一个 Meta Box :
add_action( \'add_meta_boxes\', \'site_director\' );
function site_director() {
add_meta_box(
\'site_director\',
\'网址链接\',
\'site_director_meta_box\',
\'site\',
\'side\',
\'low\'
);
}
然后在配置参数里面指定了回调函数 site
_director_meta_box
,我们需要在这个函数里面创建表单:
function site_director_meta_box($post) {
// 创建临时隐藏表单,为了安全
wp_nonce_field( \'site_director_meta_box\', \'site_director_meta_box_nonce\' );
// 获取之前存储的值
$value = get_post_meta( $post->ID, \'_site_director\', true );
?>
<label for=\"site_director\"></label>
<input type=\"text\" id=\"site_director\" style=\"width:100%\" name=\"site_director\" value=\"<?php echo esc_attr( $value ); ?>\" placeholder=\"输入网址链接\" >
<?php
}
add_action( \'save_post\', \'site_director_save_meta_box\' );
function site_director_save_meta_box($post_id){
// 安全检查
// 检查是否发送了一次性隐藏表单内容(判断是否为第三者模拟提交)
if ( ! isset( $_POST[\'site_director_meta_box_nonce\'] ) ) {
return;
}
// 判断隐藏表单的值与之前是否相同
if ( ! wp_verify_nonce( $_POST[\'site_director_meta_box_nonce\'], \'site_director_meta_box\' ) ) {
return;
}
// 判断该用户是否有权限
if ( ! current_user_can( \'edit_post\', $post_id ) ) {
return;
}
// 判断 Meta Box 是否为空
if ( ! isset( $_POST[\'site_director\'] ) ) {
return;
}
$site_director = sanitize_text_field( $_POST[\'site_director\'] );
update_post_meta( $post_id, \'_site_director\', $site_director );
}
添加自定义字段:
add_action(\"manage_posts_custom_column\", \"site_custom_columns\");
add_filter(\"manage_edit-site_columns\", \"site_edit_columns\");
function site_custom_columns($column){
global $post;
switch ($column) {
case \"site_director\":
echo get_post_meta( $post->ID, \'_site_director\', true );
break;
}
}
function site_edit_columns($columns){
$columns[\'site_director\'] = \'网址\';
return $columns;
}
显示 Meta Box 内容
echo \'网址:\'.get_post_meta( get_the_ID(), \'_site_director\', true );
调用 WP_Query 高度自定义调用 Post Type 的内容
$args = array( \'post_type\' => \'site\', \'posts_per_page\' => 10 );
$loop = new WP_Query( $args );
while ( $loop->have_posts() ) : $loop->the_post();
the_title();
echo \'
<div class=\"entry-content\">\';
the_content();
echo \'</div>\';
endwhile;
查看更多...
提高网络安全意识,养成良好上网习惯,网络下载文件先扫描杀毒。不要随意点击不明邮件中的链接、图片、文件,适当设置找回密码的提示问题。当收到与个人信息和金钱相关(如中奖、集资等)的邮件时要提高警惕。不要轻易打开陌生人发送至手机的链接和文件。在微信、QQ等程序中关闭定位功能,仅在需要时开启蓝牙。安装手机安全防护软件,经常对手机系统进行扫描。不随意连接不明Wi-Fi、刷不明二维码。保证手机随身携带,建议手机支付客户端与手机绑定,开启实名认证。从官方网站下载手机支付客户端和网上商城 应用。使用手机支付服务前,按要求在手机上安装专门用于安全防范的插件。登录手机支付应用、网上商城时,勿选择"记住密码"选项。通过网络购买商品时,仔细查看登录的网站域名是否正确,谨慎点击商家从即时通讯工具上发送的支付链接。谨慎对待手机上收到的中奖、积分兑换等信息,切勿轻易点击短信中附带的不明网址。资源收集自互联网,仅供用于学习和测试,请勿用于商业。资源如有侵权,请联系站长删除,敬请谅解!
请登录后查看评论内容