如何使用自定义帖子类型将WordPress网站带到一个下一个级别

Sara Vieira. 经过 Sara Vieira.  |  2014年10月15日

自定义帖子类型是您希望创建灵活,专业级,WordPress网站的关键元素之一。

如何允许您添加自己的数据类型;这可能是一篇文章,歌曲,电影或成千上万的其他东西。自定义帖子类型允许您根据您的个人需求对数据进行分类,这反过来允许您更好地控制您的网站的行为方式。

在这篇文章中我’ll带您通过创建电影数据库的自定义电影帖子类型。

 

为什么要使用自定义帖子类型?

为了创建电影网站,我们需要设置一个数据库。为此,没有自定义帖子类型将非常棘手,并且可能与我们现有的WordPress安装发生冲突。但是,如果我们想我们甚至可以使用适合项目的名称和属性,我们可以拥有自己的管理菜单和自定义编辑页面。

自定义帖子类型是从博客平台到全吹CMS的WordPress。他们为我们提供了在没有任何讨厌的黑客的情况下设置电影网站的自由。

 

创建电影帖子类型

在本文中,我将阐明创建自定义帖子类型所需的所有代码,然后我们将通过行逐行完成,以便了解每个零件和自定义需求的内容。

这是添加到您的完整代码 函数.php. file:

add_action( 'init', 'register_movie' );

function register_movie() {

    $labels = array( 
        'name' => 'Movies',
        'singular_name' => 'Movie',
        'add_new' => 'Add New',
        'add_new_item' => 'Add New Movie',
        'edit_item' => 'Edit Movie',
        'new_item' => 'New Movie',
        'view_item' => 'View Movie',
        'search_items' => 'Search Movies',
        'not_found' => 'No movies found',
        'not_found_in_trash' => 'No movies found in Trash',
        'menu_name' => 'Movies',
    );

    $args = array( 
        'labels' => $labels,
        'hierarchical' => false,
        'description' => 'Here you will add all the movies for the database',
        'supports' => array( 'title', 'editor', 'thumbnail' ),
        'taxonomies' => array( 'genre', 'movies', 'year' ),
        'public' => true,
        'show_ui' => true,
        'show_in_menu' => true,
        'menu_position' => 5,
        //'menu_icon' => the image link here,
        'show_in_nav_menus' => true,
        'publicly_queryable' => true,
        'exclude_from_search' => false,
        'has_archive' => true,
        'query_var' => true,
        'can_export' => true,
        'rewrite' => true,
        'capability_type' => 'post'
    );

    register_post_type( 'movie', $args );
}

正如您可以看到有点大块的代码,以创建自定义帖子类型,但如果您了解它,您将能够获取此代码并将其调整为您的项目。在第一行我们将函数与我们的自定义帖子类型联系到 在里面 这意味着当WordPress这样做时,我们的功能将触发,以便我们将始终在我们的仪表板中使用它:

add_action( 'init', 'register_movie' );

 

标签

在下一行中,我们首先声明函数的名称和一个变量,其中所有标签都与我们的电影帖类型相关联,以便所有内容都可以自定义。

我们在标签中声明的第一件事是我们的定制帖子类型的名称,以复数和单数形式:

'name' => 'Movies',
'singular_name' => 'Movie',

在接下来的两条线中,我们必须指定我们的 添新 文本(如果我们希望改变它)然后我们设置 添加新电影 因此,当我们添加一部新电影时,我们有自定义体验,而不是添加电影并具有标题说‘Add New Post’.

'add_new' => 'Add New',
'add_new_item' => 'Add New Movie',

在创建新电影的标签之后,我们需要设置编辑标签,新项目文本(默认为新的帖子/新页面),我们还需要设置视图帖子文本:

'edit_item' => 'Edit Movie',
'new_item' => 'New Movie',
'view_item' => 'View Movie',

现在在标签中,我们继续前进到WordPress管理员和我们的标签中的搜索功能。我们需要在搜索电影时设置标签,当没有找到结果时,并且在垃圾桶中没有找到结果时:

'search_items' => 'Search Movies',
'not_found' => 'No movies found',
'not_found_in_trash' => 'No movies found in Trash',

最后一个标签为自己说话,在这里,我们必须放置我们希望定制帖子类型在菜单UI中的名称,在这种情况下我们只是坚持“电影”:

'menu_name' => 'Movies',
);

 

论点

现在我们必须搬到我们的论点,因为我创建了另一个将包含所有参数的变量,我打电话给它 args。

它要求的第一个参数是 标签 我们所要做的就是指出我们刚检的标签变量,如:

$args = array( 
   'labels' => $labels,

在下一行中,我们需要设置我们的帖子类型是等级的等于页面(如帖子)。在我的情况下我不’要要成为等级的电影,所以我将它设置为false。下一行只是帖子类型的可选描述。

'hierarchical' => false,
'description' => 'Here you will add all the movies for the database',

下一行是一个重要的行;在这里,我们必须指定我们的自定义帖子类型将支持的内容,它将有哪些字段。此字段的选项是:

  • ‘title’
  • ‘editor’ 
  • ‘author’
  • ‘thumbnail’
  • ‘excerpt’
  • ‘trackbacks’
  • ‘custom-fields’
  • ‘comments’
  • ‘revisions’
  • ‘page-attributes’ 
  • ‘post-formats’

在我的情况下,对于我的帖子类型,我只希望它支持 标题, the WYSIWYG editor, a 缩略图注释  为此,我需要在此行中添加数组,如下所示:

'supports' => array( 'title', 'editor', 'thumbnail','comments' ),

在下一行中,我们需要指定它将使用的分类物系,因为我们将创建习惯分类物,那么它将在这一行中添加:

'taxonomies' => array( 'genre', 'actors', 'year' ),

接下来的三条线与帖子类型有关’在管理区域的可见性和我所做的就是将所有这一切都设置为真:

'public' => true,
'show_ui' => true,
'show_in_menu' => true,

接下来,我们将移动到菜单的位置,其中应该出现帖子类型。在这里,我们还有很多选择可供选择:

  • 5 – Below Posts
  • 10 – Below Media
  • 15 – Below Links
  • 20 – Below Pages
  • 25 – Below comments
  • 60 –在第一个分隔符以下
  • 65 – Below Plugins
  • 70 – Below Users
  • 75 – Below Tools
  • 80 – Below Settings
  • 100.–在第二个分离器以下

在我的情况下,我想要在帖子之后立即出现电影,所以我将其菜单位置设置为5,如下所示:

'menu_position' => 5,

在下一行我们照顾图标,我们可以设置自己的图标或将其留空,然后我们将获得帖子图标,然后在我们希望此帖子类型中展示我们希望在我们的菜单中选择的行。

'menu_icon' => //the image link here,
'show_in_nav_menus' => true,

在接下来的3行中,我们添加了帖子类型’S能力;我们首先设置我们是否希望在前端查询那篇文章,然后我们决定是否希望邮寄类型的结果被排除在搜索中,最后我们决定我们是否希望电影中的存档类型:

'publicly_queryable' => true,
'exclude_from_search' => false,
'has_archive' => true,

在下一行中,我们为我们的帖子类型设置了查询变量,这将定义URL将如何查找,因为此选项我们有三个可能的参数:我们可以将其设置为 真的 然后我们可以通过使用来到电影 /?电影= name_of_movie; 我们可以将它设置为一个字符串,以便URL中的电影将被我们想要的任何东西替换,例如“显示”,我们必须使用 /?show = name_of_movie 为了到达同一部电影;最后一个选项是将它设置为 错误的 这样你就无法使用它来达到电影 query_var.。 在我的情况下,随着后一种选择,我将查询var设置为true,以便我们可以与之达成 query_var. of movie:

'query_var' => true,

在下一行中,我们决定我们是否希望电影是可出口的,然后我们选择此帖子类型的SLUG,在我的情况下我刚刚坚持真实‘movie’作为slug,但你可以选择任何字符串是slug,你实际上有很多选项,这个参数是一个广泛的选项。

'can_export' => true,
'rewrite' => true,

我们参数的最后一行是我们设置了我们帖子的能力类型,因为我希望它将与正常帖子完全相同的位置,我刚刚给了它的价值 邮政, like so:

   'capability_type' => 'post'
);

我们的标签和参数完成,我们现在需要做的就是注册我们的帖子类型和 register_post_type 函数需要两个参数,第一个是我们的自定义帖子类型的名称(这最多有20个字母,没有大写字母或空格),第二个是帖子类型的参数,在此我们将只是放置我们的args变量:

    register_post_type( 'movie', $args );
}

我们的帖子类型是创建的,完全运行,您需要在页面中显示的所有功能都是一些 wp_query. magic.

 

最后的话

我希望你能看到为什么这么多人在WordPress中使用自定义帖子类型。

本文旨在让您了解创建自定义帖子类型的过程,并为您提供创建自己的惊人自定义帖子类型的起点。

 

特色图片/缩略图, 通过原子热链接定制图像, via Flickr.