3

我已经搜索了很多,除了一个破坏 WP 的插件之外找不到任何东西。

我正在使用 WooCommerce,因此涉及自定义帖子类型。在产品列表页面中,我想添加一个新列,在每个产品旁边显示每个产品 url 的 Slug。

我找到了一种非常容易显示 ID 的方法,但不是蛞蝓。

谢谢

4

2 回答 2

1

这是确切的工作代码:

// Add product slug column after product name
    function add_product_slug_column_heading( $columns ) {
        $slug_column = array(
            'product_slug' => __( 'Slug' )
        );
        $columns = array_slice( $columns, 0, 3, true ) + $slug_column + array_slice( $columns, 3, count( $columns ) - 1, true );

        return $columns;
    }
    add_filter('manage_edit-product_columns','add_product_slug_column_heading');

    // Display product slug
    function add_product_slug_column_value( $column_name, $id ) {
        if ( 'product_slug' == $column_name ) {
            echo get_post_field( 'post_name', $id, 'raw' );
        }
    }
    add_action( "manage_product_posts_custom_column", 'add_product_slug_column_value', 10, 2 );
于 2018-02-06T07:10:05.850 回答
1

首先,您要在产品名称后添加一个 slug 列。

// Add product slug column after product name
function add_product_slug_column_heading( $columns ) {
    $slug_column = array(
        'product_slug' => __( 'Slug' )
    );
    $columns = array_slice( $columns, 0, 3, true ) + $slug_column + array_slice( $columns, 3, count( $columns ) - 1, true );

    return $columns;
}

然后使用 manage_product_posts_custom_column 过滤器来显示 slug 值。

// Display product slug
function add_product_slug_column_value( $column_name, $id ) {
    if ( 'product_slug' == $column_name ) {
        echo get_post_field( 'post_name', $id, 'raw' );
    }
}
add_action( "manage_product_posts_custom_column", 'add_product_slug_column_value', 10, 2 );

无编码解决方案

如果您只是在寻找无需编码的快速解决方案,您可以使用完全免费的管理列。它使您只需单击几下即可添加相同的 slug 列。

于 2016-03-23T09:19:45.270 回答