【问题标题】:Adding Taxonomy details to a custom post type - to get SEO details to show将分类详细信息添加到自定义帖子类型 - 以显示 SEO 详细信息
【发布时间】:2021-01-07 13:41:14
【问题描述】:
  1. 我使用(Wordpress 自定义帖子类型)创建了一个简单的纪念帖子目录
  2. 设置已将存档设置为 - TRUE
  3. 创建了一个single-memorial-wall.php
  4. 创建了一个archive-memorial-wall.php

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

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

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

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

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

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 custom-post-type taxonomy


    【解决方案1】:

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

    您可以使用 capabilities 参数指定一组功能,并且从 Wordpress 5.5 开始,您可以使用 default_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,
    );
    

    尽管default_term 是相对较新的,所以一切都不是粉红色和漂亮的,因此报告了一些错误。你可以阅读更多关于它的信息here on the Wordpress ticket reporting platform,例如ticket n°51666。我也写了一篇关于它的帖子:Wordpress, default_term parameter for register_taxonomy, checkbox not visually checked

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-05
      • 2011-04-21
      • 1970-01-01
      • 1970-01-01
      • 2015-01-28
      相关资源
      最近更新 更多