我还有一个愚蠢的问题,但我不能得到一件事:)
我发现了这篇关于创建自定义帖子类型的非常好的文章:
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,但什么都没有!:)
那么,如何为不同的帖子类型创建两个单独的列布局呢?
最合适的回答,由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()
等等。。。明白了吗?