什么是WordPress的Custom Post Type?如何创建?

Custom Post Type可通过插件或代码创建,用于定义书籍、产品等内容类型,支持自定义字段和SEO优化,提升网站结构清晰度与搜索引擎排名。

什么是WordPress的Custom Post Type?如何创建?

WordPress的Custom Post Type(自定义文章类型)允许你超越默认的文章(post)和页面(page)类型,创建具有特定属性和功能的独立内容类型。简单来说,它让你在WordPress里定义自己的内容类型,比如“书籍”、“产品”、“活动”等等。

解决方案:

要创建Custom Post Type,主要有两种方法:使用插件或者编写代码。

1. 使用插件:

这是最简单直接的方式,特别适合不熟悉代码的用户。有很多优秀的插件可以帮你轻松创建和管理Custom Post Type,例如:

  • Custom Post Type ui: 这款插件非常流行,界面直观,操作简单,可以让你在后台图形化地定义Custom Post Type 的名称、标签、图标等。
  • Pods – Custom Content Types and Fields: 功能更强大,除了创建Custom Post Type,还可以添加自定义字段,甚至可以扩展现有的文章类型和页面。

使用插件的好处是无需编写代码,风险较低,但可能会增加网站的插件数量,影响性能。

2. 编写代码:

如果你是开发者,或者想更灵活地控制Custom Post Type 的行为,那么编写代码是更好的选择。

以下是一个简单的创建Custom Post Type 的代码示例,你可以将这段代码添加到你主题的

functions.php

文件中,或者创建一个自定义插件:

function create_book_post_type() {     $labels = array(         'name'               => _x( '书籍', 'post type general name' ),         'singular_name'      => _x( '书籍', 'post type singular name' ),         'menu_name'          => __( '书籍' ),         'name_admin_bar'     => __( '书籍' ),         'add_new'            => __( '添加新书籍' ),         'add_new_item'       => __( '添加新书籍' ),         'new_item'           => __( '新书籍' ),         'edit_item'          => __( '编辑书籍' ),         'view_item'          => __( '查看书籍' ),         'all_items'          => __( '所有书籍' ),         'search_items'       => __( '搜索书籍' ),         'parent_item_colon'  => __( '父级书籍:' ),         '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' => 'book' ),         'capability_type'    => 'post',         'has_archive'        => true,         'hierarchical'       => false,         'menu_position'      => null,         'supports'           => array( 'title', 'editor', 'author', 'thumbnail', 'excerpt', 'comments' )     );      register_post_type( 'book', $args ); }  add_action( 'init', 'create_book_post_type' );

这段代码创建了一个名为 “book” 的 Custom Post Type。

$labels

数组定义了各种标签,

$args

数组定义了Custom Post Type 的各种属性,例如是否公开、是否支持评论等等。

register_post_type()

函数用于注册Custom Post Type。

编写代码的好处是更灵活,可以完全控制Custom Post Type 的行为,但需要一定的编程基础,并且容易出错。 需要注意的是,直接修改

functions.php

文件存在风险,建议使用子主题或自定义插件。

Custom Post Type 创建后如何添加自定义字段?

创建了Custom Post Type 之后,你可能需要为它添加自定义字段,例如“作者”、“ISBN”、“出版社”等等。 添加自定义字段也有两种主要方法:使用插件或者编写代码。

  • 插件: Advanced Custom Fields (ACF) 是最流行的选择,它允许你通过图形界面创建各种类型的自定义字段,包括文本、数字、日期、图像等等。 ACF 非常灵活,可以满足各种需求。 另一种选择是 Meta Box,它也提供了强大的自定义字段功能。

  • 代码: 你可以使用 WordPress 的

    add_post_meta()

    get_post_meta()

    update_post_meta()

    函数来添加、获取和更新自定义字段的值。 这种方法需要编写更多的代码,但可以更精确地控制自定义字段的行为。

例如,使用ACF插件,你可以轻松地在“书籍”这个Custom Post Type中添加“作者”和“ISBN”两个自定义字段,然后在编辑书籍时,就可以填写这些字段的值。 ACF 还提供了很多高级功能,例如字段组、条件逻辑等等,可以让你创建非常复杂的自定义字段结构。

如何在主题中显示 Custom Post Type 的内容?

创建了Custom Post Type 和自定义字段之后,下一步就是在你的主题中显示这些内容。 这通常需要修改主题的模板文件。

你需要创建一个用于显示 Custom Post Type 内容的模板文件。 这个文件的命名约定是

single-{post_type}.php

,例如,如果你的Custom Post Type 的名称是 “book”,那么模板文件就应该是

single-book.php

在这个模板文件中,你可以使用 WordPress 的函数来获取 Custom Post Type 的内容和自定义字段的值,并将其显示在页面上。

例如:

<?php get_header(); ?>  <div id="primary" class="content-area">     <main id="main" class="site-main">          <?php         while ( have_posts() ) :             the_post();             ?>              <article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>                 <header class="entry-header">                     <?php the_title( '<h1 class="entry-title">', '</h1>' ); ?>                 </header><!-- .entry-header -->                  <div class="entry-content">                     <?php the_content(); ?>                      <?php                     // 获取自定义字段的值                     $author = get_field('author');                     $isbn = get_field('isbn');                      if( $author ): ?>                         <p>作者:<?php echo $author; ?></p>                     <?php endif;                      if( $isbn ): ?>                         <p>ISBN:<?php echo $isbn; ?></p>                     <?php endif;                     ?>                 </div><!-- .entry-content -->              </article><!-- #post-<?php the_ID(); ?> -->              <?php         endwhile; // End of the loop.         ?>      </main><!-- #main --> </div><!-- #primary -->  <?php get_sidebar(); get_footer();

这段代码首先获取文章的标题和内容,然后使用

get_field()

函数获取 “author” 和 “isbn” 两个自定义字段的值,并将其显示在页面上。 你需要根据你的具体需求修改这段代码。

Custom Post Type 对SEO有什么影响?

合理使用Custom Post Type 可以提升你的网站的SEO。 通过将不同类型的内容组织到不同的Custom Post Type 中,你可以更清晰地定义网站的结构,方便搜索引擎理解你的网站内容。

例如,如果你有一个在线商店,你可以将产品信息存储在一个 “product” Custom Post Type 中,将博客文章存储在一个 “post” Custom Post Type 中。 这样,搜索引擎就可以更容易地区分这两种类型的内容,并给予它们相应的权重。

此外,你还可以为Custom Post Type 设置自定义的URL结构,例如使用

rewrite

参数。 一个清晰、友好的URL结构可以提高网站的点击率和排名。 例如,你可以将产品页面的URL设置为

/products/{product-name}

,将博客文章的URL设置为

/blog/{post-name}

最后,确保你的Custom Post Type 的内容是高质量的,并且针对相关的关键词进行了优化。 这包括文章标题、描述、内容等等。 使用 Yoast SEO 或 Rank math 等 SEO 插件可以帮助你优化Custom Post Type 的SEO。

© 版权声明
THE END
喜欢就支持一下吧
点赞10 分享