WordPress 功能强大之处其中之一就是支持自定义文章类型和分类,非常的好用。本文给大家简单说一下如何在我们的主题中添加自定义文章类型 register_post_type 和分类 register_taxonomy。首先,添加自定义文章类型:
/* Register Custom Post Type */
add_action( 'init', 'create_products_post_type' );
// add portfolio
function create_products_post_type() {
$labels = array(
'name' => __('产品', 'WPGP'),
'singular_name' => __('产品', 'WPGP'),
'add_new' => __('添加', 'WPGP'),
'add_new_item' => __('新增产品', 'WPGP'),
'edit_item' => __('编辑产品', 'WPGP'),
'new-item' => __('新增产品', 'WPGP'),
'view_item' => __('查看产品', 'WPGP'),
'search_items' => __('搜索产品', 'WPGP'),
'not_found' => __('未找到产品', 'WPGP'),
'not_found_in_trash' => __('垃圾箱未找到产品', 'WPGP'),
'parent_item_colon' => '',
);
$args = array(
'labels' => $labels,
'show_ui' => true, // Whether to generate a default UI for managing this post type in the admin
'query_var' => true,
'show_in_nav_menus' => false,
'public' => true, // Controls how the type is visible to authors and readers
'capability_type' => 'post',
'hierarchical' => false,
'menu_icon' => 'dashicons-format-gallery', // use a font icon, e.g. 'dashicons-chart-pie'
'has_archive' => true, // Enables post type archives
'rewrite' => array( 'slug' => 'products' ),
'supports' => array( 'title', 'editor', 'thumbnail', 'excerpt', 'comments', 'custom-fields', 'page-attributes' ),
'can_export' => true,
);
register_post_type( 'products', $args );
}
接下来我们需要给自定义文章类型添加分类功能,来对自定义文章进行分类管理:
add_action( 'init', 'register_products_taxonomy');
// create two taxonomies, genres and writers for the post type "book"
function register_products_taxonomy() {
// Add new taxonomy, make it hierarchical (like categories)
$labels = array(
'name' => __('产品分类', 'WPGP'),
'singular_name' => __('产品分类', 'WPGP'),
'menu_name' => __('产品分类', 'WPGP'),
'search_items' => __('搜索', 'WPGP'),
'all_items' => __('所有产品分类', 'WPGP'),
'parent_item' => __( '该产品分类的上级分类' ),
'parent_item_colon' => __( '该产品分类的上级分类:' ),
'edit_item' => __('编辑产品分类', 'WPGP'),
'update_item' => __('更新产品分类', 'WPGP'),
'add_new_item' => __('添加新的产品分类', 'WPGP'),
'new_item_name' => __('新的产品分类', 'WPGP'),
);
$args = array(
'hierarchical' => true,
'labels' => $labels,
'show_ui' => true,
'show_in_menu' => true,
'show_in_nav_menus' => true,
'query_var' => true,
'has_archive' => false,
'show_admin_column' => true,
'rewrite' => array( 'slug' => 'product' ),
);
register_taxonomy( 'product', 'products', $args );
}
最后,添加一个控制 WordPress 后台自定义文章页文章排序的小功能:
// admin page products orderby
add_filter( 'parse_query', 'sort_products_by_date' );
function sort_products_by_date() {
global $pagenow;
if ( is_admin() && $pagenow =='edit.php' && !empty($_GET['post_type'] == 'products') && !isset($_GET['post_status']) && !isset($_GET['orderby']) ) {
wp_redirect( admin_url('edit.php?post_type=products&orderby=date&order=desc') );
exit;
}
}
专业提供WordPress主题安装、深度汉化、加速优化等各类网站建设服务,详询在线客服!