WordPress教程 给主题添加自定义文章类型register_post_type和分类教程

主机教程评论70字数 4882阅读16分16秒阅读模式
wordpress作为一款简单实用的CMS系统,因为功能强大,便于开发,一直得到很多站长的青睐。最实用之处就是支持自定义文章类型和分类,并且非常的好用。本文章博主就来给大家简单的讲解一下如何在我们的主题中添加自定义文章类型register_post_type和分类register_taxonomy

1、添加自定义文章类型

/* 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 );
}

2、添加分类功能

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 );
}

3、添加后台自定义文章排序的功能

// 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作为一款简单实用的CMS系统,因为功能强大,便于开发,一直得到很多站长的青睐。最实用之处就是支持自定义文章类型和分类,并且非常的好用。本文章博主就来给大家简单的讲解一下如何在我们的主题中添加自定义文章类型register_post_type和分类register_taxonomy文章源自国外主机测评-https://www.zjcp.org/14540.html

1、添加自定义文章类型

/* 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 );
}

2、添加分类功能

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 );
}

3、添加后台自定义文章排序的功能

// 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;
	}
}
文章源自国外主机测评-https://www.zjcp.org/14540.html文章源自国外主机测评-https://www.zjcp.org/14540.html
 
  • 本文由 主机测评 发表于 2021年9月14日00:00:00
  • 转载请务必保留本文链接:https://www.zjcp.org/14540.html

发表评论