将分类详细信息添加到自定义帖子类型 - 获取要显示的 SEO 详细信息

Adding Taxonomy details to a custom post type - to get SEO details to show

提问人:DanG 提问时间:1/7/2021 最后编辑:amarinediaryDanG 更新时间:1/8/2021 访问量:108

问:

  1. 我使用(Wordpress 自定义帖子类型)创建了一个简单的纪念帖子目录
  2. 设置已将存档设置为 - TRUE
  3. 创建了一个单一的纪念墙.php
  4. 创建了一个存档纪念墙.php

一切正常,但 Yoast 无法帮助我的客户对此存档页面进行 SEO,因为它没有要附加的页面或类别,因此(查看源代码图像)页面标题不正确,并且没有显示该页面的描述详细信息。

所以我想,我可以对此进行排序,创建一个自定义分类法......(下面的代码),然后为这些帖子类型设为默认值。

但是,通过创建分类,我只是增加了更多不必要的复杂性,客户当然必须创建一个类别类型,并像常规帖子一样将每个帖子附加到它上面。(即使所有自定义帖子都只会进入此分类法)。

CPT 的原因是为客户提供一个简单的仪表板,而无需勾选类别,他创建的简单帖子始终附加到正确的类别存档中,并且这是 SEO 可索引的。

我在这里错过了什么......如果我创建的分类区域不允许进一步分类,而只是has_archive的 SEO 所在的地方,那就太好了。

enter image description here

function custom_memorial_post_type()
{
    $args = array(
        'public' => true,
        'publicly_queryable' => true,
        'show_ui' => true,
        'exclude_from_search' => true,
        'show_in_nav_menus' => false,
        'has_archive' => true,
        'hierarchical' => true,
        'labels' => array(
            'name' => 'Memorials',
            'singular_name' => 'Memorial',
            'add_new' => __('Add A Memorial'),
            'add_new_item' => __('New Memorial'),
            'edit_item' => __('Edit The Memorial'),
            'new_item' => __('New Memorial'),
            'all_items' => __('All Memorials'),
            'view_items' => __('View Memorials'),
            'menu_name' => 'Memorials'
        ),
        'supports' => array(
            'title',
            'custom-fields',
            'post-formats'
        ),
        'description' => 'Pet memorial',
        'menu_position' => 22,
        'menu_icon' => 'dashicons-format-image',
    );
    register_post_type('memorial-wall', $args);
}
add_action('init', 'custom_memorial_post_type');

function memorial_wall_taxonomy() {
    $args = array(
        'labels' => array(
            'name' => 'Memorial Wall',
            'singular_name' => 'Memorial Wall',
            'parent_item' => __('Parent Memorial Wall Category'),
            'parent_item_colon' => __('Parent Memorial Wall Category:'),
            'edit_item' => __('Edit The Memorial Wall Category'),
            'update_item' => __('Update The Memorial Wall Category'),
            'add_new_item' => __('Add New Memorial Wall Category'),
            'new_item_name' => __('New Memorial Wall Category'),
            'menu_name' => 'Memorials Wall SEO'
        ),
        'public' => true,
        'hierarchical' => true
    );
    register_taxonomy('memorial-taxonomy', array('memorial-wall'), $args);
}
add_action( 'init', 'memorial_wall_taxonomy');
php wordpress 自定义后类型 分类法

评论


答:

0赞 amarinediary 1/7/2021 #1

如果我创建的分类区域不允许进一步分类,而只是has_archive的 SEO 所在的地方,那就太好了。

您可以使用参数指定一组功能,从 Wordpress 5.5 开始,您可以使用参数设置默认术语。因此,创建一个只读/不可见的分类。capabilitiesdefault_term

$capabilities = array(
  'manage_terms' => '', //default: manage_categories
  'edit_terms' => '', //default: manage_categories
  'delete_terms' => '', //default: manage_categories
  'assign_terms' => '', //default: edit_posts
);
$default = array(
  'name' => '_your_custom_term_name_',
  'slug' => '_your_custom_term_slug_',
  'description' => '_your_custom_term_description_',
);
$args = array(
  //...other arguments
  'capabilities' => $capabilities,
  'default_term' => $default,
);

一切都不是粉红色的,而且很漂亮,因为相对较新,已经报告了一些错误。您可以在 Wordpress 工单报告平台上阅读更多相关信息,例如工单编号 51666。我还写了一篇关于它的文章:Wordpress,default_term register_taxonomy参数,复选框未直观选中default_term