如何为页面创建分类值并在wp-admin中列出它们

时间:2018-04-03 作者:klewis

使用WordPress版本4.9.4,我正在寻找为页面创建分类数据的方法。如果可能的话,我想了解(1)这是如何工作的,以及(2)如何在/edit.php?post_type=page 在wp admin中。

谢谢

1 个回复
最合适的回答,由SO网友:Dave Romsey 整理而成

这绝对是可能的,而且也很容易!

如果您想注册现有的分类法(即。category) 现有职位类型(即page), register_taxonomy_for_object_type() 可以使用。E、 g.:

add_action( \'init\', \'wpse_register_category_tax_for_page\' );
function wpse_register_category_tax_for_page() {
    $taxonomy    = \'category\';
    $object_type = \'page\';

    register_taxonomy_for_object_type( $taxonomy, $object_type );
}
还可以创建新的分类法,并将其与新的/现有的帖子类型相关联。在本例中,分类法classification 与现有职位类型关联,page:

add_action( \'init\', \'wpse_register_custom_taxonomy\', 0 );
function wpse_register_custom_taxonomy() {
    // Arguments for register_taxonomy().
    $args = [
        \'public\'            => true,
        \'hierarchical\'      => true,
        \'label\'             => __( \'Classification\', \'textdomain\' ),
        \'show_ui\'           => true,
        \'show_admin_column\' => true,
        \'query_var\'         => \'classification\',
        \'rewrite\'           => [ \'slug\' => \'classification\' ],
    ];

    // Array of post types to associate with this taxonomy.
    $post_types = [ \'page\' ];

    register_taxonomy( \'classification\', $post_types, $args );
}
请注意,参数$show_admin_column 已设置为true 在这里这将确保将分类法列添加到/wp-admin/edit.php?post_type=page 屏幕

让我们假设其他插件注册了classification 分类并设置$show_admin_column 参数到false. 我们可以使用register_taxonomy_args 要覆盖原始设置并确保分类显示在“管理”列中,请执行以下操作:

add_filter( \'register_taxonomy_args\', \'wpse_edit_taxonomy_args\', 10, 3 );
function wpse_edit_taxonomy_args( $args, $taxonomy, $object_type ) {
    // Array of taxonomies to change arguments on.
    $taxonomies = [
        \'classification\',
    ];

    // Set $show_admin_column to true.
    if ( in_array( $taxonomy, $taxonomies ) ) {
        $args[ \'show_admin_column\' ] = true;
    }

    return $args;
}

结束

相关推荐

Pages>max_num_ages不会抛出404

我在WP管理中创建了一个名为Blog的新页面,并为其创建了自定义页面模板。在模板中,我有一个简单的分页自定义查询。$query = new WP_Query(array( \'post_type\' => \'post\', \'posts_per_page\' => 1, \'paged\' => $paged )); 看起来一切正常,除了我手动键入比url的“/页/”部分后可用的页码更大的页码。页面不会抛出404错误,但会在没有自定义循环的情况下将页面呈现为正常。