array( 'name' => __( 'Slides', 'icefit' ),
'singular_name' => __( 'Slide', 'icefit' ),
'menu_name' => __( 'Slides', 'icefit' ),
'all_items' => __( 'All Slides', 'icefit' ),
'add_new' => __( 'Add New', 'icefit' ),
'add_new_item' => __('Add New Slide', 'icefit'),
'edit_item' => __( 'Edit Slide', 'icefit' ),
'new_item' => __( 'New Slide', 'icefit' ),
'view_item' => __( 'View Slide', 'icefit' ),
'items_archive' => __( 'Slides Archive', 'icefit' ),
'search_items' => __( 'Search Slides', 'icefit' ),
'not_found' => __( 'No Slide Found', 'icefit' ),
'not_found_in_trash' => __( 'No Slide found in Trash', 'icefit' ),
),
'public' => true,
'exclude_from_search' => true,
'publicly_queryable' => false,
'has_archive' => false,
'supports' => array( 'title', 'thumbnail' )
)
);
}
/* ---------------- Create Custom Slides Taxonomies ---------------- */
add_action( 'init', 'icefit_create_slides_taxonomies', 0 );
function icefit_create_slides_taxonomies() {
// Add slides category taxonomy
$labels = array(
'name' => _x( 'Slides Categories', 'taxonomy general name', 'icefit' ),
'singular_name' => _x( 'Slides Category', 'taxonomy singular name', 'icefit' ),
'search_items' => __( 'Search Category', 'icefit' ),
'all_items' => __( 'All Categories', 'icefit' ),
'parent_item' => __( 'Parent Category', 'icefit' ),
'parent_item_colon' => __( 'Parent Category:', 'icefit' ),
'edit_item' => __( 'Edit Category', 'icefit' ),
'update_item' => __( 'Update Category', 'icefit' ),
'add_new_item' => __( 'Add New Category', 'icefit' ),
'new_item_name' => __( 'New Category Name', 'icefit' ),
'menu_name' => __( 'Slides Categories', 'icefit' ),
);
register_taxonomy('icf-slides-category',array('icf_slides'), array(
'hierarchical' => true,
'labels' => $labels,
'show_ui' => true,
'query_var' => true,
'rewrite' => array( 'slug' => 'icf-slides-category' ),
));
}
/* --------------- Customize Slides Admin Menu ---------------- */
// Add columns
function icefit_slides_change_columns( $cols ) {
$cols = array(
'cb' => '',
'title' => __( 'Title', 'trans' ),
'slide_thumb' => __( 'Thumbnail', 'trans' ),
// 'slide_url' => __( 'URL', 'trans' ),
'slide_cat' => __( 'Category', 'trans' ),
);
return $cols;
}
add_filter( "manage_icf_slides_posts_columns", "icefit_slides_change_columns" );
// Populate columns
function icefit_slides_custom_columns( $column, $post_id ) {
switch ( $column ) {
case "slide_thumb":
echo get_the_post_thumbnail( $post_id, 'medium' ); break;
case "slide_url":
echo get_post_meta( $post_id, 'icf_slide_url', true); break;
case "slide_cat":
$cats = wp_get_post_terms( $post_id, 'icf-slides-category', array('fields' => 'names') );
foreach($cats as $cat):
echo $cat."
";
endforeach;
break;
}
}
add_action( "manage_posts_custom_column", "icefit_slides_custom_columns", 10, 2 );
// Filter the request to just give posts for the given taxonomy, if applicable.
function icefit_slides_taxonomy_filter_restrict_manage_posts() {
global $typenow;
if ($typenow != "icf_slides") return;
$post_types = get_post_types( array( '_builtin' => false ) );
if ( in_array( $typenow, $post_types ) ) {
$filters = get_object_taxonomies( $typenow );
foreach ( $filters as $tax_slug ) {
$tax_obj = get_taxonomy( $tax_slug );
$selected = ( isset($_GET[$tax_slug]) ) ? $_GET[$tax_slug] : "";
wp_dropdown_categories( array(
'show_option_all' => 'Show All '.$tax_obj->label,
'taxonomy' => $tax_slug,
'name' => $tax_obj->name,
'orderby' => 'name',
'selected' => $selected,
'hierarchical' => $tax_obj->hierarchical,
'show_count' => false,
'hide_empty' => true
) );
}
}
}
add_action( 'restrict_manage_posts', 'icefit_slides_taxonomy_filter_restrict_manage_posts' );
function icefit_slides_taxonomy_filter_post_type_request( $query ) {
global $pagenow, $typenow;
if ($typenow != "icf_slides") return;
if ( 'edit.php' == $pagenow ) {
$filters = get_object_taxonomies( $typenow );
foreach ( $filters as $tax_slug ) {
$var = &$query->query_vars[$tax_slug];
if ( isset( $var ) ) {
$term = get_term_by( 'id', $var, $tax_slug );
$var = $term->slug;
}
}
}
}
add_filter( 'parse_query', 'icefit_slides_taxonomy_filter_post_type_request' );
/* ---------------- Add Metabox to Slides ---------------- */
function icefit_slides_metabox_settings() {
$prefix = 'icf_slides_';
$meta_box_settings = array('id' => 'icf-slides-meta-box',
'title' => 'Slide Link',
'page' => 'icf_slides',
'context' => 'normal',
'priority' => 'default',
'fields' => array(
array(
'name' => 'Caption',
'desc' => '',
'id' => $prefix . 'caption',
'type' => 'text',
'std' => '' ),
array(
'name' => 'Link',
'desc' => '',
'id' => $prefix . 'link',
'type' => 'text',
'std' => '' ),
),
);
return $meta_box_settings;
}
// Add meta box
add_action('admin_menu', 'icefit_slides_add_box');
function icefit_slides_add_box() {
$meta_box_settings = icefit_slides_metabox_settings();
add_meta_box($meta_box_settings['id'], $meta_box_settings['title'], 'icefit_slides_show_box', $meta_box_settings['page'], $meta_box_settings['context'], $meta_box_settings['priority']);
}
// Callback function to show fields in meta box
function icefit_slides_show_box() {
$meta_box_settings = icefit_slides_metabox_settings();
global $post;
// Use nonce for verification
echo '';
echo '
| ', ' | ';
switch ($field['type']) {
case 'text':
echo '',
' ', $field['desc']; break; case 'textarea': echo '', ' ', $field['desc']; break; case 'select': echo ''; break; case 'radio': foreach ($field['options'] as $option) { echo '', $option['name']; } break; case 'checkbox': echo ''; break; } echo ' |
|---|