首页 > WordPress学习 > WordPress创建自定义文章和自定义分类 搭建个性网站页面

WordPress创建自定义文章和自定义分类 搭建个性网站页面

时间:2022年3月18日 分类:WordPress学习 浏览量:156

WordPress默认配置:post、page,两种页面形式,一种是普通文章页面,一种是单页性质。此外还有分类:Category,和标签:tag。

本文将针对post和Category介绍自定义创建的方法,方便我们来搭建自定义文章页面、分类页面等。

创建自定义文章页面

创建一个新的 Post Type 需要使用 register_post_type 函数来注册一下。需要在你主题的 functions.php 文件下调用该函数:

register_post_type( $post_type, $args );

$post_type 参数就是你自定义 Post Type 的名称,Post Type 可以自定义的功能非常多,所以这个函数里面的 $args 参数会很多。所以通常会用下面这种格式来注册:

function my_custom_post_product() {
    $args = array();
    register_post_type( 'product', $args );
}
add_action( 'init', 'my_custom_post_product' );

包裹在一个函数中,定义一个数组,然后挂靠到 init 这个 action 上。这样 WordPress 在初始化的时候,就会执行这个函数注册一个自定义 Post Type,因为调用 register_post_type() 的时候,必须要在 admin_menu action 之前,在 after_setup_theme action 之后,所以这里最好挂靠到 init action 上。

参数很多,为了写教程方便,只列出比较常用的参数,大体结构如下:

function my_custom_post_product() {
  $labels = array(
    'name'               => _x( 'products', 'post type 名称' ),
    'singular_name'      => _x( 'product', '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'          => 'Products'
  );
  $args = array(
    'labels'        => $labels,
    'description'   => '我们网站的产品信息',
    'public'        => true,
    'menu_position' => 5,
    'supports'      => array( 'title', 'editor', 'thumbnail', 'excerpt', 'comments' ),
    'has_archive'   => true
  );
  register_post_type( 'product', $args );
}
add_action( 'init', 'my_custom_post_product' );

参数介绍:

  • labels – (数组,可选) 用来配置文章类型显示在后台的一些描述性文字,默认为空。(上面代码中,为了清晰所以单独拿出来创建了一个数组 $labels)
  • description-一些简短的介绍文字
  • public-(布尔值),用于定义publicly_queriable, show_ui, show_in_nav_menus and exclude_from_search的值
  • publicly_queryable- (布尔值)可以从前台获取的变量(从url中,比如url重写)
  • exclude_from_search – (布尔值),是否能够被搜索到
  • show_ui –  (布尔值)是否生成一个默认的管理页面,也就是是否在后台有管理页面。默认跟public的是一样
  • show_in_menu –  是否在后台菜单项中显示,如果为ture,那么show_ui的值也必须设置为true,将会有一个顶级菜单项。还可以为一个字符串,类似’tools.php’ 或者’edit.php?post_type=page
  • menu_position – 在后台菜单中的位置。
  • menu_icon – 菜单的icon图标(一个url)。
  • capability_type – 查看、编辑、删除的能力类型(capability),默认为post
  • capabilities – (数组,一般人用不到)
  • map_meta_cap – (布尔值),只有设置了capabilities才用的上
  • hierarchical – (布尔值),文章是否有层级关系,也就是是否允许有父级文章。
  • supports – (数组),对文章类型的一些功能支持,如设置参数:’title’-标题;’editor’ (content) – 内容编辑器;’author’ – 作者;’thumbnail’ – 特色图像,主题还得支持特色图像才行;’excerpt’ – 摘要;’trackbacks’;’custom-fields’-自定义字段;’comments’ – 评论;’revisions’ – 修订版;’page-attributes’ – 页面属性,类似page,选择页面模板的那个
  • register_meta_box_cb – 当执行remove_meta_box()add_meta_box()时调用的函数
  • taxonomies – 添加已经注册了的分类法(比如默认的分类、标签)
  • permalink_epmask
  • has_archive – 文章是否有归档,就是一个所有文章归档页面。
  • rewrite – (布尔值或者数组),是否有url重写,设置为false的话将会防止url重写;设置数组时参数:slug:默认使用此类型的name,自定义使用array(‘slug’=>$slug);with_front:true或false,允许在连接上添加前缀,默认为true;feeds:默认是has_archive的值;pages:默认值true。关于重写以后教程详细讲解。
  • query_var – url重写会用到
  • can_export – 是否输出
  • show_in_nav_menus – 是否出现在设置菜单页面的选项中
  • _builtin – wordpress开发人员建议你不要使用这个参数哦。
  • _edit_link –  wordpress开发人员建议你不要使用这个参数哦

将上面代码加到主题 functions.php 的最下面,进入后台会发现多出了 “产品” 选项,这样表示注册成功,点击“增加产品”就可以像文章一样发布产品了。

创建自定义分类

添加分类功能需要使用函数 register_taxonomy,使用方法也很简单,跟注册 Post Type 函数类似,只不过多了一个参数用来指定对应的 Post Type :

就本例而言,可以配置如下常用参数:

function my_taxonomies_product() {
	$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,
		'public'            => true,
		'show_in_nav_menus' => true,
		'hierarchical' => true, //控制自定义分类法的格式,如果值是false,则将分类(category)转化成标签(tags)
		'show_ui'           => true,
		'query_var'         => true,
        'rewrite'           => true,
        'show_admin_column' => true
	);
	register_taxonomy( 'products', 'product', $args );//products是该自定义分类法的名称;product是对应的自定义文章类型名称
}
add_action( 'init', 'my_taxonomies_product', 0 );

把上面的代码添加到主题的functions.php文件,后台的“产品”自定义文章类型下面就会出现“产品分类”,然后就可以按正常分类目录一样创建分类。

调用自定义分类法文章

自定义分类法的分类列表页面模板文件是taxonomy.php或taxonomy-{taxonomy_slug}.php,taxonomy.php是所有自定义分类法默认调用的模板文件,taxonomy-{taxonomy_slug}.php则是指定自定义分类法调用的模板文件,比如本教程中创建的自定义分类法products,使用taxonomy-products.php文件即可指定调用。

版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权

文章名称:WordPress创建自定义文章和自定义分类 搭建个性网站页面

文章链接:https://news.yynnw.com/48.html

该作品系作者结合个人学习经验及互联网相关知识整合。如若侵权请通过投诉通道提交信息,我们将按照规定及时处理。

标签:

最新文章