Take the 2-minute tour ×
WordPress Development Stack Exchange is a question and answer site for WordPress developers and administrators. It's 100% free, no registration required.

I have the following function which is working perfectly for my 'video' custom post type to display customized columns in the dashboard.

I have decided the way my plugin will work is to have custom post types created dynamically so I no longer know the exact name of the custom post type and I would like to apply this filter to all custom post type if possible.

    function populate_columns( $column ) {  // populate the custom columns
    if ( 'thumbnail' == $column ) {
        $thumb_array = array('post_type' => 'video');
    $thumbnails = get_posts($thumb_array);
            if ( has_post_thumbnail($thumbnail->ID)) {
              echo '<a href="' . get_edit_post_link( $thumbnail->ID ) . '" title="' . esc_attr( $thumbnail->post_title ) . '">';  // link thumbnail to edit page
              echo get_the_post_thumbnail($thumbnail->ID, array(100,100));
              echo '</a>';
              }
    }
    elseif ( 'duration' == $column ) {
        $duration_array = array ('post_type'=> 'video');
        $duration = get_post_meta( get_the_ID(), '_my_meta_duration', true );
        if ($duration != '') {
            echo $duration . ' mins';
    }

    }
}

add_action( 'manage_video_posts_custom_column', 'populate_columns' );

I have been going over these two examples from the codex page for get_post_types but I have not been able to figure out how to implement the post_types array into my function.

The call to get post types returns the registered post types.

<?php $post_types=get_post_types(); ?>

Output a list all registered post types

<?php 
$post_types=get_post_types('','names'); 
foreach ($post_types as $post_type ) {
  echo '<p>'. $post_type. '</p>';
}
?>
share|improve this question
add comment

1 Answer

up vote 0 down vote accepted

If you want to target all custom post types as well as the built in post types (posts and pages) then you need to use the manage_posts_custom_column hook instead of the manage_{post_type}_posts_custom_column hook which is used to target specific post type columns, subtle difference in naming convention but big difference in how they operate.

Example:

add_action( 'manage_posts_custom_column', 'your_callback'); 

With the above hook, you can still conditionally check for and exclude certain post types, like the built in types if they do not apply to your logic, but this is what you need to target all post types if you don't know the post type name ahead of time.

share|improve this answer
1  
Thanks I have simply removed the custom 'video' post type as you said in both my filter and action calls and it's working. –  Sean Jun 19 '13 at 13:09
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.