Skip to content

Instantly share code, notes, and snippets.

@dhigginbotham
Created October 7, 2012 02:47
Show Gist options
  • Save dhigginbotham/3846919 to your computer and use it in GitHub Desktop.
Save dhigginbotham/3846919 to your computer and use it in GitHub Desktop.
foreach loop custom post types fed through array
// let's create the function for the custom type
function custom_posts() {
$post_types = array('software','resources');
foreach ($post_types as $slug) {
// creating (registering) the custom type
register_post_type( $slug, /* (http://codex.wordpress.org/Function_Reference/register_post_type) */
// let's now add all the options for this post type
array('labels' => array(
'name' => __(ucfirst($slug), 'bonestheme'), /* This is the Title of the Group */
'singular_name' => __(ucfirst($slug), 'bonestheme'), /* This is the individual type */
'all_items' => __('All ' . ucfirst($slug), 'bonestheme'), /* the all items menu item */
'add_new' => __('Add New', 'bonestheme'), /* The add new menu item */
'add_new_item' => __('Add New ' . ucfirst($slug), 'bonestheme'), /* Add New Display Title */
'edit' => __( 'Edit', 'bonestheme' ), /* Edit Dialog */
'edit_item' => __('Edit Post ' . ucfirst($slug), 'bonestheme'), /* Edit Display Title */
'new_item' => __('New', 'bonestheme'), /* New Display Title */
'view_item' => __('View', 'bonestheme'), /* View Display Title */
'search_items' => __('Search ' . ucfirst($slug), 'bonestheme'), /* Search Custom Type Title */
'not_found' => __('Nothing found in the Database.', 'bonestheme'), /* This displays if there are no entries yet */
'not_found_in_trash' => __('Nothing found in Trash', 'bonestheme'), /* This displays if there is nothing in the trash */
'parent_item_colon' => ''
), /* end of arrays */
'description' => __( 'Section for ' . ucfirst($slug), 'bonestheme' ), /* Custom Type Description */
'public' => true,
'publicly_queryable' => true,
'exclude_from_search' => false,
'show_ui' => true,
'query_var' => true,
'menu_position' => 8, /* this is what order you want it to appear in on the left hand side menu */
'menu_icon' => get_stylesheet_directory_uri() . '/library/images/custom-post-icon.png', /* the icon for the custom post type menu */
'rewrite' => array( 'slug' => $slug, 'with_front' => false ), /* you can specify its url slug */
'has_archive' => $slug, /* you can rename the slug here */
'capability_type' => 'post',
'hierarchical' => false,
/* the next one is important, it tells what's enabled in the post editor */
'supports' => array( 'title', 'editor', 'author', 'thumbnail')
) /* end of options */
); /* end of register post type */
/* this adds your post categories to your custom post type */
register_taxonomy_for_object_type('category', $slug);
/* this adds your post tags to your custom post type */
register_taxonomy_for_object_type('post_tag', $slug);
}
}
// adding the function to the Wordpress init
add_action( 'init', 'custom_posts');
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment