Skip to content

Instantly share code, notes, and snippets.

@davemac
Created November 13, 2012 00:17
Show Gist options
  • Select an option

  • Save davemac/4062981 to your computer and use it in GitHub Desktop.

Select an option

Save davemac/4062981 to your computer and use it in GitHub Desktop.
Orbit Slider as WordPress custom post type
add_image_size( 'slider-image-large', 640, 280, true );
// Homepage Slider
add_action('init', 'register_dmc_orbit_slider');
function register_dmc_orbit_slider() {
$labels = array(
'name' => _x( 'Homepage Slider', 'post type general name' ),
'singular_name' => _x( 'Homepage Slider', 'post type singular name' ),
'add_new' => _x( 'Add New', 'Homepage Slider' ),
'add_new_item' => __( 'Add New Homepage Slider' ),
'edit_item' => __( 'Edit Homepage Slider' ),
'new_item' => __( 'New Homepage Slider' ),
'all_items' => __( 'All Homepage Sliders' ),
'view_item' => __( 'View Homepage Slider' ),
'search_items' => __( 'Search Homepage Sliders' ),
'not_found' => __( 'No Homepage Sliders found' ),
'not_found_in_trash' => __( 'No Homepage Sliders found in Trash' ),
'parent_item_colon' => '',
'menu_name' => 'Homepage Slider'
);
$args = array(
'labels' => $labels,
'public' => true,
'query_var' => true,
'rewrite' => true,
// 'capability_type' => 'post',
'capabilities' => array(
'publish_posts' => 'manage_options',
'edit_posts' => 'manage_options',
'edit_others_posts' => 'manage_options',
'delete_posts' => 'manage_options',
'delete_others_posts' => 'manage_options',
'read_private_posts' => 'manage_options',
'edit_post' => 'manage_options',
'delete_post' => 'manage_options',
'read_post' => 'manage_options',
),
'has_archive' => true,
'hierarchical' => false,
'menu_position' => 5,
'rewrite' => array( 'slug' => 'slider', 'with_front' => false ),
'supports' => array( 'title', 'editor', 'thumbnail' )
);
register_post_type( 'orbit_slider' , $args );
}
function SliderContent(){
$args = array( 'post_type' => 'orbit_slider', 'order' => 'ASC' );
$loop = new WP_Query( $args );
while ( $loop->have_posts() ) : $loop->the_post();
$slider_link = get_field('slider_image_links_to');
foreach ( $slider_link as $post_object ): ?>
<?php echo '<a href="'.get_permalink($post_object->ID) .'">';
if ( has_post_thumbnail() ) { the_post_thumbnail( 'slider-image-large' ); } ?>
<div class="orbit-caption">
<h1><?php the_title(); ?></h1>
<?php the_content(); ?>
</div>
<?php echo '</a>'; ?>
<?php endforeach;
endwhile;
}
// Remove menu item if not admin
function wpse28782_remove_menu_items() {
if( !current_user_can( 'administrator' ) ):
remove_menu_page( 'edit.php?post_type=orbit_slider' );
endif;
}
add_action( 'admin_menu', 'wpse28782_remove_menu_items' );
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment