You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在WordPress中完整注册并显示“Books”自定义文章类型?

如何在WordPress中完整注册并显示“Books”自定义文章类型?

嘿,我看到你已经在尝试给书店网站注册「Books」自定义文章类型了,但你的代码好像没写完,而且还有不少可以优化的地方,让我一步步帮你把这件事捋顺~

一、先补全并优化注册代码

你现有代码的框架是对的,但缺少了最关键的注册调用,而且可以补充更多细节让后台管理更顺手。把下面的完整代码替换你主题functions.php里的片段:

function register_book_post_type() {
    // 自定义后台显示的文字标签,让操作更清晰
    $labels = array(
        'name'                  => 'Books',
        'singular_name'         => 'Book',
        'menu_name'             => 'Books',
        'name_admin_bar'        => 'Book',
        'add_new'               => '添加新书',
        'add_new_item'          => '添加新书',
        'new_item'              => '新书',
        'edit_item'             => '编辑书籍',
        'view_item'             => '查看书籍',
        'all_items'             => '所有书籍',
        'search_items'          => '搜索书籍',
        'not_found'             => '未找到书籍',
        'not_found_in_trash'    => '回收站中未找到书籍'
    );

    $args = array(
        'labels'                => $labels,
        'public'                => true, // 让文章类型公开可访问
        'publicly_queryable'    => true,
        'show_ui'               => true, // 在后台显示管理界面
        'show_in_menu'          => true,
        'query_var'             => true,
        'rewrite'               => array( 'slug' => 'books' ), // 设置友好的URL别名,比如你的域名/books/
        'capability_type'       => 'post', // 使用和普通文章一样的权限设置
        'has_archive'           => true, // 启用归档页面
        'hierarchical'          => false, // 书籍不需要层级关系,设为false
        'menu_position'         => 5, // 把菜单放在「文章」下面,方便找到
        'menu_icon'             => 'dashicons-book-alt', // 用WordPress自带的书本图标,后台更直观
        'supports'              => array( 'title', 'editor', 'thumbnail', 'excerpt', 'custom-fields' ) // 增加摘要和自定义字段,方便添加作者、ISBN这些信息
    );

    // 关键!调用注册函数,把自定义文章类型注册进去
    register_post_type( 'book', $args );
}
// 在WordPress初始化时执行注册函数
add_action( 'init', 'register_book_post_type' );

二、刷新固定链接(必做步骤)

代码加好后,一定要去后台的设置→固定链接页面,随便切换一个链接格式再切回你常用的(或者直接点击「保存更改」),这样WordPress会重新生成URL规则,确保书籍的页面和归档页能正常访问。

三、在前端显示书籍列表

如果要在网站前端展示书籍,可以用WP_Query来查询并输出。比如在某个页面模板里添加下面的代码:

<?php
// 查询所有书籍,按标题升序排列,每页显示10本
$book_query = new WP_Query( array(
    'post_type' => 'book',
    'posts_per_page' => 10,
    'orderby' => 'title',
    'order' => 'ASC'
) );

// 如果有书籍就循环输出
if ( $book_query->have_posts() ) :
    while ( $book_query->have_posts() ) : $book_query->the_post(); ?>
        <div class="book-card">
            <h3><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3>
            <!-- 显示书籍封面(如果设置了特色图像) -->
            <?php if ( has_post_thumbnail() ) : ?>
                <div class="book-cover">
                    <?php the_post_thumbnail( 'medium' ); ?>
                </div>
            <?php endif; ?>
            <!-- 显示书籍摘要 -->
            <p class="book-excerpt"><?php the_excerpt(); ?></p>
        </div>
    <?php endwhile;
    // 重置查询,避免影响后续内容
    wp_reset_postdata();
else :
    echo '<p>暂无书籍上架~</p>';
endif;
?>

贴心小提示

  • 如果你用的是子主题,记得把代码加到子主题的functions.php里,这样主题更新时代码不会丢失
  • 要是想更方便地管理书籍的专属信息(比如作者、出版社、价格、ISBN),可以用Advanced Custom Fields这类插件来创建可视化的自定义字段,比手动加字段省心多啦

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.08 13:34:37