如何将自定义列添加到自定义帖子类型管理屏幕

时间:2011-03-10 作者:Wordpressor

我还有一个愚蠢的问题,但我不能得到一件事:)

我发现了这篇关于创建自定义帖子类型的非常好的文章:

http://thinkvitamin.com/code/create-your-first-wordpress-custom-post-type/

我不确定步骤4是如何工作的。

这家伙写道:

add_action("manage_posts_custom_column",  "portfolio_custom_columns");
add_filter("manage_edit-portfolio_columns", "portfolio_edit_columns");

function portfolio_edit_columns($columns){
  $columns = array(
    "cb" => "<input type=\\"checkbox\\" />",
    "title" => "Portfolio Title",
    "description" => "Description",
    "year" => "Year Completed",
    "skills" => "Skills",
  );

  return $columns;
}
function portfolio_custom_columns($column){
  global $post;

  switch ($column) {
    case "description":
      the_excerpt();
      break;
    case "year":
      $custom = get_post_custom();
      echo $custom["year_completed"][0];
      break;
    case "skills":
      echo get_the_term_list($post->ID, \'Skills\', \'\', \', \',\'\');
      break;
  }
}
我有两种不同的帖子类型(“书”和“电影”)。

我不知道如何将此代码与正确的代码链接!

我肯定我遗漏了一些东西(很可能在代码中),但我没有看到他在代码中的任何地方包含“portfolio\\u edit\\u columns”。

我在WP Codex中发现:http://codex.wordpress.org/Plugin_API/Action_Reference/manage_posts_custom_column 看起来

manage\\u edit-${post\\u type}\\u列

确实很神奇,但我尝试了manage\\u edit-books\\u columns和manage\\u edit-movies\\u columns,但什么都没有!:)

那么,如何为不同的帖子类型创建两个单独的列布局呢?

3 个回复
最合适的回答,由SO网友:Anh Tran 整理而成

ThinkVitamin的代码是正确的。我认为问题来自代码中的其他地方。

实际上,钩子manage_edit-${post_type}_columns 接受参数$columns 它是所有注册列的数组。要添加新列,只需向该数组添加新元素,如下所示:

add_filter(\'manage_edit-film_columns\', \'my_columns\');
function my_columns($columns) {
    $columns[\'views\'] = \'Views\';
    return $columns;
}

SO网友:RGdesign

这比你想象的还要容易。

wp上有两个功能:

manage_posts_columns (notice the "posts" part)

and

manage_posts_custom_column (again "posts")
对于页面,“manage\\u page\\u posts\\u columns”和“manage\\u page\\u posts\\u custom\\u column”(请注意“page\\u posts”部分)也有相同的内容

因此,如果您需要为x post type添加这些COL,您只需要这样做,不要说您的自定义post type名称是“movie”,然后:

manage_movie_posts_columns()
manage_movie_posts_custom_column()

Notice the "movie_posts" part, that´s why you see something like "manage_{custom_type}_posts_columns" on codex pages.

对于“books”自定义类型:

manage_books_posts_columns()
manage_books_posts_custom_column()
等等。。。明白了吗?

SO网友:kaiser

看看自定义帖子类型的重写$arg是如何实现的。

要更好地查看输出数据,只需执行以下操作

echo \'<pre>\';   
print_r($custom_post_type_obj);   
echo \'</pre>\';   
在查询post类型对象时。

结束

相关推荐

ADMIN_PRINT_SCRIPTS-$HOOK_SUFFIX是否适用于指向单个文件的嵌套路径?

可以用钩子admin_print_scripts-$hook_suffix 用于创建的挂钩,如$hookname = get_plugin_page_hookname(\"my-quiz/lib/admin/$code_page\", \'\' );?哪里$code_page 是somefilename.php.我试过了,但似乎不起作用。我想这可能是因为文件路径?UPDATE上面的代码注册的是“admin\\u page\\u my-quick/lib/admin/question\\u form”,但这