wordpress 自定义文章类型开发

wordpress后台默认有 文章、页面等类型,有时我们需要新增一些特殊类型,如作品等。

wordpress自定义文章类型

<?php//自定义文章类型:服务function post_type_service() {    $labels = array(        'name'               => __( '产品' ),        'singular_name'      => __( '产品' ),        'add_new'            => __( '新建产品' ),        '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' ),        'has_archive'   => true    );    register_post_type( 'service', $args );}add_action( 'init', 'post_type_service' );//自定义文章分类:服务function taxonomies_service() {    $labels = array(        'name'              => __( '产品分类'),        'singular_name'     => __( '产品分类' ),        '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( 'service_category', 'service', $args );}add_action( 'init', 'taxonomies_service', 0 );

二、自定义文章类型的固定链接修改

//自定义文章伪静态:服务
$post_types = array(
    'service' => 'service', //文章类型=>链接设置
);

add_filter('post_type_link', 'custom_post_link', 1, 3);
function custom_post_link( $link, $post = 0 ){
    global $post_types;
    if ( in_array( $post->post_type,array_keys($post_types) ) ){
        return home_url( $post_types[$post->post_type].'/' . $post->ID .'.html' );
    } else {
        return $link;
    }
}

add_action( 'init', 'custom_post_rewrites_init' );
function custom_post_rewrites_init(){
    global $post_types;
    foreach( $post_types as $k => $v ) {
        add_rewrite_rule(
            $v.'/([0-9]+)?.html$',
            'index.php?post_type='.$k.'&p=$matches[1]',
            'top' );
    }
}

获取自定义文章分类

<?php
    $args = array(
        'taxonomy' => 'service_category',    //自定义分类名称
        'hide_empty' => false,    //是否隐藏无文章的分类,默认true
        'count' => false,    //是否获取分类下文章数量,默认true
        'parent' => 0,    //父级ID,0是一级
    );
    $cats = get_terms($args);
    var_dump($cats);    //分类数组
?>

获取某个分类下的自定义文章

<?php
    $args = array(
        'numberposts' => '50',    //文章数量
        'post_type' => 'service',    //文章类型
        'tax_query'=>array(
            array(
                'taxonomy'=>'service_category',    //文章分类类型
                'terms'=>$cat_sub->term_id,    //分类ID,可以放多个分类的数组,或逗号分隔的字符串
            )
        ),
    );
    $posts = get_posts($args);
    if($posts): foreach($posts as $post):
?>
<a href="<?php the_permalink(); ?>" class="texts_a"><?php the_title();?></a>
<?php wp_reset_postdata(); endforeach; endif;?>

获取当前文章的类型

get_post_type();

获取当前文章的自定义分类

<?php 
$post_ID = get_the_ID(); 
$category = get_the_terms($post_ID,'service_category'); 
echo $category[0]->name;
?>

自定义分类列表页和自定义类型文章页

//自定义分类列表页
taxonomy-[taxonomy类型].php
//比如上面定义的service类型的列表页,注意名称 taxonomy-service_category.php

//自定义类型文章页
single-[文章类型].php
//比如上面定义的service类型文章 single-service.php

自定义分类列表页获取分类信息

//下面内容不需要修改
get_term_by( 'slug', get_query_var( 'term' ), get_query_var( 'taxonomy' ) );

参考

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇