I have another dumb question, but I can’t get one thing 🙂
I’ve found this very good article on creating custom post types:
http://thinkvitamin.com/code/create-your-first-wordpress-custom-post-type/
I’m not sure how Step 4 works.
This guys writes:
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;
}
}
I have two different post types (‘books’ and ‘movies’).
And I can’t get how to link this code with right one!
I’m sure I’m missing something (most likely in the code), but I didn’t see him including “portfolio_edit_columns” anywhere in the code.
I have found this in WP Codex: http://codex.wordpress.org/Plugin_API/Action_Reference/manage_posts_custom_column and it seems like
manage_edit-${post_type}_columns
does the magic, but I’ve tried both manage_edit-books_columns and manage_edit-movies_columns and nothing! 🙂
So how to create two separate column layouts for different post types?
The code from ThinkVitamin is right. I think the problem came from else where in your code.
Actually, the hook
manage_edit-${post_type}_columns
takes an argument$columns
which is an array of all registered columns. To add a new column, just add a new element to this array, like this:It´s even easier than you belive.
You have this two functions on wp:
You have same thing for pages, “manage_page_posts_columns” and “manage_page_posts_custom_column” (notice the “page_posts” part)
So, if you need to add those cols for x post type, you only need to do like this, le´t say your custom post type name is “movie”, then:
Notice the “movie_posts” part, that´s why you see something like “manage_{custom_type}_posts_columns” on codex pages.
For a “books” custom type:
And so on… got it?
Take a look at how the rewrite $arg for your custom post type is.
To get a better view of the output data, just do something like
on the post type object when querying it.