Title: StenW's Replies | WordPress.org

---

# StenW

  [  ](https://wordpress.org/support/users/stenw/)

 *   [Profile](https://wordpress.org/support/users/stenw/)
 *   [Topics Started](https://wordpress.org/support/users/stenw/topics/)
 *   [Replies Created](https://wordpress.org/support/users/stenw/replies/)
 *   [Reviews Written](https://wordpress.org/support/users/stenw/reviews/)
 *   [Topics Replied To](https://wordpress.org/support/users/stenw/replied-to/)
 *   [Engagements](https://wordpress.org/support/users/stenw/engagements/)
 *   [Favorites](https://wordpress.org/support/users/stenw/favorites/)

 Search replies:

## Forum Replies Created

Viewing 2 replies - 1 through 2 (of 2 total)

 *   Forum: [Plugins](https://wordpress.org/support/forum/plugins-and-hacks/)
    In
   reply to: [[DivUp Content] using latest pluginn update has changed page layout](https://wordpress.org/support/topic/using-latest-pluginn-update-has-changed-page-layout/)
 *  [StenW](https://wordpress.org/support/users/stenw/)
 * (@stenw)
 * [12 years, 7 months ago](https://wordpress.org/support/topic/using-latest-pluginn-update-has-changed-page-layout/#post-3812497)
 * Try using the [startwrap] and [endwrap], this soled a similar issue for me.
 *   Forum: [Plugins](https://wordpress.org/support/forum/plugins-and-hacks/)
    In
   reply to: [[CPT Bootstrap Carousel] Adding custom field support?](https://wordpress.org/support/topic/adding-custom-field-support/)
 *  Thread Starter [StenW](https://wordpress.org/support/users/stenw/)
 * (@stenw)
 * [12 years, 8 months ago](https://wordpress.org/support/topic/adding-custom-field-support/#post-3975595)
 * My solution, which is very similar to the one above, but uses a button instead
   of making the image a link.
 *     ```
       <?php
       /*
       Plugin Name: CPT Bootstrap Carousel
       Plugin URI: http://www.tallphil.co.uk/bootstrap-carousel
       Description: A custom post type for choosing images and content which outputs <a href="http://twitter.github.io/bootstrap/javascript.html#carousel" target="_blank">Bootstrap Carousel</a> from a shortcode. Requires Bootstrap javascript and CSS to be loaded separately.
       Version: 1.1
       Author: Phil Ewels
       Author URI: http://phil.ewels.co.uk
       License: GPLv2
       */
   
       // Custom Post Type Setup
       add_action( 'init', 'cptbc_post_type' );
       function cptbc_post_type() {
       	$labels = array(
       		'name' => 'Carousel Images',
       		'singular_name' => 'Carousel Image',
       		'add_new' => 'Add New',
       		'add_new_item' => 'Add New Carousel Image',
       		'edit_item' => 'Edit Carousel Image',
       		'new_item' => 'New Carousel Image',
       		'view_item' => 'View Carousel Image',
       		'search_items' => 'Search Carousel Images',
       		'not_found' =>  'No Carousel Image',
       		'not_found_in_trash' => 'No Carousel Images found in Trash',
       		'parent_item_colon' => '',
       		'menu_name' => 'Carousel'
       	);
       	$args = array(
       		'labels' => $labels,
       		'public' => true,
       		'exclude_from_search' => true,
       		'publicly_queryable' => false,
       		'show_ui' => true,
       		'show_in_menu' => true,
       		'query_var' => true,
       		'rewrite' => true,
       		'capability_type' => 'page',
       		'has_archive' => true,
       		'hierarchical' => false,
       		'menu_position' => 21,
       		'supports' => array('title','excerpt','thumbnail', 'page-attributes', 'custom-fields')
       	);
       	register_post_type('cptbc', $args);
       }
   
       // Add theme support for featured images if not already present
       // http://wordpress.stackexchange.com/questions/23839/using-add-theme-support-inside-a-plugin
       function cptbc_addFeaturedImageSupport() {
       	$supportedTypes = get_theme_support( 'post-thumbnails' );
       	if( $supportedTypes === false )
       		add_theme_support( 'post-thumbnails', array( 'cptbc' ) );
       	elseif( is_array( $supportedTypes ) ) {
       		$supportedTypes[0][] = 'cptbc';
       		add_theme_support( 'post-thumbnails', $supportedTypes[0] );
       	}
       }
       add_action( 'after_setup_theme', 'cptbc_addFeaturedImageSupport');
   
       // FRONT END
   
       // Shortcode
       function cptbc_shortcode($atts, $content = null) {
       	// Set default shortcode attributes
       	$defaults = array(
       		'interval' => '5000',
       		'showcaption' => 'true',
       		'showcontrols' => 'true'
       	);
   
       	// Parse incomming $atts into an array and merge it with $defaults
       	$atts = shortcode_atts($defaults, $atts);
   
       	return cptbc_frontend($atts);
       }
       add_shortcode('image-carousel', 'cptbc_shortcode');
   
       // Display latest WftC
       function cptbc_frontend($atts){
       	$id = rand(0, 999); // use a random ID so that the CSS IDs work with multiple on one page
       	$args = array( 'post_type' => 'cptbc', 'orderby' => 'menu_order', 'order' => 'ASC');
       	$loop = new WP_Query( $args );
       	$images = array();
       	while ( $loop->have_posts() ) {
       		$loop->the_post();
       		if ( '' != get_the_post_thumbnail() ) {
       			$title = get_the_title();
       			$content = get_the_excerpt();
       			$image = get_the_post_thumbnail( get_the_ID(), 'full' );
       			$url = get_post_custom_values("url");
       			$images[] = array('title' => $title, 'content' => $content, 'image' => $image, 'url' => esc_url($url[0]));
       		}
       	}
       	if(count($images) > 0){
       		ob_start();
       		?>
       		<div id="cptbc_<?php echo $id; ?>" class="carousel slide">
       			<ol class="carousel-indicators">
       			<?php foreach ($images as $key => $image) { ?>
       				<li data-target="#cptbc_<?php echo $id; ?>" data-slide-to="<?php echo $key; ?>" data-interval="<?php echo $atts['interval']; ?>" <?php echo $key == 0 ? 'class="active"' : ''; ?>></li>
       			<?php } ?>
       			</ol>
       			<div class="carousel-inner">
       			<?php foreach ($images as $key => $image) { ?>
       				<div class="item <?php echo $key == 0 ? 'active' : ''; ?>">
       					<?php echo $image['image']; ?>
       					<?php if($atts['showcaption'] === 'true') { ?>
       						<div class="carousel-caption">
       							<h2><?php echo $image['title']; ?></h2>
       							<p class="lead"><?php echo $image['content']; ?></p>
       							<?php if($image['url']) { echo '<a class="btn btn-large btn-primary" href="' . $image['url'] . '">Läs mer</a>'; }?>
       						</div>
       					<?php } ?>
       				</div>
       			<?php } ?>
       			</div>
       			<?php if($atts['showcontrols'] === 'true') { ?>
       				<a class="left carousel-control" href="#cptbc_<?php echo $id; ?>" data-slide="prev">‹</a>
       				<a class="right carousel-control" href="#cptbc_<?php echo $id; ?>" data-slide="next">›</a>
       			<?php } ?>
       		</div>
       <?php }
       	$output = ob_get_contents();
       	ob_end_clean();
   
       	// Restore original Post Data
       	wp_reset_postdata();	
   
       	return $output;
       }
   
       // Call the carousel in javascript, else it won't start scrolling on its own
       function cptbc_footer_js() {
       ?>
       <script type="text/javascript">
       	jQuery(function(){
       		jQuery('.carousel').carousel()
       	});
       </script>
       <?php
       }
       add_action('wp_footer', 'cptbc_footer_js');
   
       ?>
       ```
   

Viewing 2 replies - 1 through 2 (of 2 total)