WordPress主题添加自定义文章类型register_post_type和分类法

下面是编程之家 jb51.cc 通过网络收集整理的代码片段。编程之家小编现在分享给大家,也给大家做个参考。

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' => __('产品',

'add_new' => __('添加',

'add_new_item' => __('新增产品',

'edit_item' => __('编辑产品',

'new-item' => __('新增产品',

'view_item' => __('查看产品',

'search_items' => __('搜索产品',

'not_found' => __('未找到产品',

'not_found_in_trash' => __('垃圾箱未找到产品',

'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' => __('产品分类',

'singular_name' => __('产品分类',

'menu_name' => __('产品分类',

'search_items' => __('搜索',

'all_items' => __('所有产品分类',

'parent_item' => __( '该产品分类的上级分类' ),

'parent_item_colon' => __( '该产品分类的上级分类:' ),

'edit_item' => __('编辑产品分类',

'update_item' => __('更新产品分类',

'add_new_item' => __('添加新的产品分类',

'new_item_name' => __('新的产品分类',

);

 

$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;

}

}

以上是编程之家(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

相关文章

我想将wordpress的默认接口路由改掉,愿意是默认的带一个 wp...
wordpress自定义分类法之后,我看到链接都自动在后面添加了一...
事情是这样的,我用 get_post_type 函数创建了一个自定义分类...
最近网站莫名其妙的被顶上了,过一个多小时,就注册一个账号...
最近服务器要到期了,就想着把网站转移到另外一台服务器,本...
今天在写wordpress的接口,然后碰到个奇怪的问题,怎么访问都...