在页面和帖子上将特色图像列添加到WordPress管理中

时间:2019-01-17 作者:coops

我已在functions.php 要添加到列中以查看帖子上的特色图像的文件。然而,我也希望对页面执行此操作,但如果我重复代码,将帖子替换为页面,则会在站点上产生错误。有人知道我如何用一点代码就可以做到这一点吗?

这是我发布的代码:

add_filter(\'manage_posts_columns\', \'add_img_column\');
add_filter(\'manage_posts_custom_column\', \'manage_img_column\', 10, 2);

function add_img_column($columns) {
  $columns = array_slice($columns, 0, 1, true) + array("links" => "Image") + array_slice($columns, 1, count($columns) - 1, true);
  return $columns;
}

function manage_img_column($column_name, $post_id) {
 if( $column_name == \'links\' ) {
  echo get_the_post_thumbnail($post_id, \'thumbnail\');
 }
 return $column_name;
}
但是,如果我在第二个页面上重复代码更改“posts”,这会给我带来错误:

add_filter(\'manage_posts_columns\', \'add_img_column\');
add_filter(\'manage_posts_custom_column\', \'manage_img_column\', 10, 2);

function add_img_column($columns) {
  $columns = array_slice($columns, 0, 1, true) + array("links" => "Image") + array_slice($columns, 1, count($columns) - 1, true);
  return $columns;
}

function manage_img_column($column_name, $post_id) {
 if( $column_name == \'links\' ) {
  echo get_the_post_thumbnail($post_id, \'thumbnail\');
 }
 return $column_name;
}
add_filter(\'manage_pages_columns\', \'add_img_column\');
add_filter(\'manage_pages_custom_column\', \'manage_img_column\', 10, 2);

function add_img_column($columns) {
  $columns = array_slice($columns, 0, 1, true) + array("links" => "Image") + array_slice($columns, 1, count($columns) - 1, true);
  return $columns;
}

function manage_img_column($column_name, $post_id) {
 if( $column_name == \'links\' ) {
  echo get_the_post_thumbnail($post_id, \'thumbnail\');
 }
 return $column_name;
}
很抱歉,如果这是一个很明显的答案,但我对wordpress和php还很陌生,所以请帮我解释一下原因why 如果您能给出答案,我们将不胜感激!谢谢

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

出现错误的原因是您有多个同名函数。有两个函数add_img_column() 还有两个打电话来manage_img_column(). 在PHP中不能有两个同名函数。

不过,您甚至不需要两个函数。您可以将同一个函数挂钩到多个挂钩中。这就是您所需要的:

add_filter(\'manage_posts_columns\', \'add_img_column\');
add_filter(\'manage_pages_columns\', \'add_img_column\');
add_filter(\'manage_posts_custom_column\', \'manage_img_column\', 10, 2);
add_filter(\'manage_pages_custom_column\', \'manage_img_column\', 10, 2);

function add_img_column($columns) {
  $columns = array_slice($columns, 0, 1, true) + array("links" => "Image") + array_slice($columns, 1, count($columns) - 1, true);
  return $columns;
}

function manage_img_column($column_name, $post_id) {
 if( $column_name == \'links\' ) {
  echo get_the_post_thumbnail($post_id, \'thumbnail\');
 }
 return $column_name;
}

相关推荐

使用wp_ins_post()插入新帖子后,该帖子对wp_Query不可见,但同样的WP_Query也适用于从wp-admin面板插入的帖子

制作脚本,在特定条件下向数据库添加新的自定义帖子。一切正常。但有一种流动。在用我的脚本将帖子写入数据库后,我无法用WP\\u查询将其提取出来。如果我直接从wp管理面板添加帖子,所有WOKR都可以。但如果我用脚本添加帖子,我无法用WP\\u查询提取它们。新添加的帖子显示在wp admin面板的帖子列表中,包含所有所需的值,这些都很酷,但对wp\\U查询不可见。只有在我在wp管理面板中更改帖子的任何自定义字段并按下更新按钮后,它才可见。参考页面后,一切都开始完美工作。新帖子似乎已经发布,当我列出所有此类可用帖