要在分类列表上显示的ACF字段键/值

时间:2019-09-26 作者:Hewe

标题可能不是百分之百准确,但让我来说明我的意思:

我有一个自定义分类法(不管分类法是否为post类型),以及在分类法上注册的ACF字段。这一切都很好,但我想知道是否可以在下面的框中显示名称、描述、Slug、Count旁边的键/值(例如键入:Candle):

enter image description here

2 个回复
SO网友:Michelle

正如你所描述的,我在我的网站上运行这个,但我使用了一个名为Admin Columns. 不过,我认为他们与ACF的整合是付费“pro”版本的一部分。

SO网友:Faye

您可以使用最多四个功能对页面或帖子执行此操作,包括在这里,因为这就是我为您复制和粘贴的内容。

要将相同的内容添加到分类法中,我认为您需要使用manage_edit-tag_columns 过滤器和manage_tag_custom_column 行动Here\'s a resource I found.

以下是页面(也可以很容易地应用到帖子中),以防它帮助你找到你要去的地方。

功能1:创建自定义列

/**
 * Custom Columns
 * Prints custom column list.
 *
 * @param array $columns is the administration columns visible to the user
 * in the pages dashboard.
 */
function custom_page_columns($columns)
{
    $columns = array(
        \'cb\'               => \'<input type="checkbox" />\',
        \'title\'            => \'Title\',
        \'nameofyourcolumn\' => \'Name of Your Column\',
        \'author\'           => \'Author\',
        \'date\'             => \'Date\',
    );
    return $columns;
}
add_action("manage_pages_custom_column", "custom_page_columns");
功能2:将ACF字段添加到该列

/**
 * Custom Columns
 * Adds nameofyourcolumn to columns.
 *
 * @param array $columns is the administration columns visible to the user
 * in the pages dashboard.
 */
function custom_columns($column)
{
    global $post;
    if( $column == \'nameofyourcolumn\' ) {
        echo esc_html( get_field( \'your_acf_field_name\', $post->ID ) );
    }
}
add_filter("manage_edit-page_columns", "custom_columns");
功能3:添加对此列进行排序的功能。

/**
 * Custom Columns
 * Sorts columns.
 *
 * @param array $columns is the administration columns visible to the user
 * in the pages dashboard.
 */
function custom_column_register_sortable( $columns )
{
    $columns[\'nameofyourcolumn\'] = \'nameofyourcolumn\';
    return $columns;
}
add_filter("manage_edit-page_sortable_columns", "custom_column_register_sortable" );
功能4:向该列添加排序依据和元键。

/**
 * Custom Columns
 * Orders columns alphabetically.
 *
 * @param array $query sorts the nameofyourcolumn column when clicked
 */
function custom_column_orderby( $query ) {
    if( ! is_admin() )
        return;

    $orderby = $query->get( \'orderby\');

    if( \'nameofyourcolumn\' == $orderby ) {
        $query->set(\'meta_key\',\'your_acf_field_name\');
        $query->set(\'orderby\',\'meta_value\');
    }
}
add_action( \'pre_get_posts\', \'custom_column_orderby\' );
所以从技术上讲,你不需要最后两个,但是如果你想在那里做一些排序,这是很有帮助的。

在我的示例中,不要忘记替换项目nameofyourcolumn, your_acf_field_nameName of Your Column.