如何在仪表板帖子列表中显示自定义字段(替换标题)

Posted

技术标签:

【中文标题】如何在仪表板帖子列表中显示自定义字段(替换标题)【英文标题】:How to display a custom field in the dashboard posts list( replacing the title ) 【发布时间】:2019-10-01 12:09:49 【问题描述】:

我正在使用 WordPress,我确实创建了一个包含多个自定义字段的自定义帖子类型(使用 ACV,高级自定义字段) 我已经隐藏了所有基本的 WordPress 字段,如标题、内容编辑器缩略图等,所以我只留下我的自定义字段来创建新帖子。

由于在创建帖子时没有填写标题,我得到了一个帖子列表,每个标题都设置为“自动草稿” 我显然不想要的东西。

我的问题很简单:

是否可以,如果可以,如何将标题替换为仪表板帖子列表中我的自定义字段之一。

我到处搜索,但找不到答案。

对不起,我的英语不是我的母语,我希望你能理解我基本上想要做什么。

感谢您抽出宝贵时间阅读我的问题。 祝你有美好的一天

【问题讨论】:

欢迎来到***兄弟 【参考方案1】:

我自己设法找到了解决方案。

假设您有一个名为“test”的自定义帖子类型,其中包含 3 个自定义字段,分别名为 onetwothree。而你想去掉标题和日期,在帖子列表表中显示onetwothree的内容。

首先,您必须创建一个删除标题和日期并创建新列的函数。

function custom_columns($columns)

    unset($columns['title']);
    unset($columns['date']);
    return array_merge(
        $columns,
        array(
            'one' => __('One'),
            'two' => __('Two'),
            'three' => __('Three')
        )
    );

add_filter('manage_test_posts_columns', 'custom_columns');

那么你需要在帖子列表表格中显示自定义字段内容:

function display_custom_columns($column, $post_id)

    switch ($column) 
        case 'one':
            echo get_post_meta($post_id, 'one', true);
            break;
        case 'two':
            echo get_post_meta($post_id, 'two', true);
            break;
        case 'three':
            echo get_post_meta($post_id, 'three', true);
            break;
    

add_action('manage_test_posts_custom_column', 'display_custom_columns', 10, 2);

Further reading

【讨论】:

很好的答案,谢谢【参考方案2】:

您可以使用wp_insert_post_data 来完成所需的功能。创建或更新帖子时会触发此操作。

add_action( 'wp_insert_post_data', 'my_updated_title', 99, 1 );

function my_updated_title( $data ) 

  // If this is just a revision, don't update title.
  if ( wp_is_post_revision( $data['ID'] ) ) 
    return;
  

  // Set the post title to your custom field value
  $data['post_title'] = get_field( 'your_acf_field', $data['ID'] );

  // Return the updated post data
  return $data;


【讨论】:

老兄,感谢您的宝贵时间,但您错过了我的意思。我要更改的是 BACK OFFICE 中的帖子列表。不在前面。标题设置为“自动草稿”,因为我删除了帖子编辑器中的标题字段(当您创建新帖子时),没关系,我不想要标题或任何其他基本的 worpress 字段。但如果我这样做,我会在后台得到一个只有“自动草稿”和创建日期的列表。因此,除非您单击它们进行编辑,否则无法识别任何帖子。 抱歉,让我修改一下上面的答案。 没问题的人,我可能一开始就解释错了。我应该把这段代码放在哪里? 通常这会放在functions.php 文件中。 我写的时候没能测试。如果它不起作用,我们可能只需要使用不同的钩子。

以上是关于如何在仪表板帖子列表中显示自定义字段(替换标题)的主要内容,如果未能解决你的问题,请参考以下文章

如何从一组自定义字段值中显示 Wordpress 帖子

如何在 WordPress 中显示自定义的最近帖子?

在 Wordpress 中使用 ACF(高级自定义字段)显示自定义帖子标题的下拉菜单

Wordpress:使用 wp_insert_post() 填充自定义帖子类型字段

如何在具有帖子类型的自定义页面上显示所有图像字段

如何在 divi 博客模块中显示自定义字段?