コード例 #1
0
    function widget($args, $instance)
    {
        $cache = wp_cache_get('theme_widget_related_posts', 'widget');
        if (!is_array($cache)) {
            $cache = array();
        }
        if (isset($cache[$args['widget_id']])) {
            echo $cache[$args['widget_id']];
            return;
        }
        ob_start();
        extract($args);
        $title = apply_filters('widget_title', empty($instance['title']) ? __('Related Posts', 'adelante') : $instance['title'], $instance, $this->id_base);
        if (!($number = (int) $instance['number'])) {
            $number = 10;
        } else {
            if ($number < 1) {
                $number = 1;
            } else {
                if ($number > 15) {
                    $number = 15;
                }
            }
        }
        if (!($desc_length = (int) $instance['desc_length'])) {
            $desc_length = 80;
        } else {
            if ($desc_length < 1) {
                $desc_length = 1;
            }
        }
        $disable_thumbnail = $instance['disable_thumbnail'] ? '1' : '0';
        $display_extra_type = $instance['display_extra_type'] ? $instance['display_extra_type'] : 'time';
        global $post;
        $tags = wp_get_post_tags($post->ID);
        $tagIDs = array();
        if ($tags) {
            $tagcount = count($tags);
            for ($i = 0; $i < $tagcount; $i++) {
                $tagIDs[$i] = $tags[$i]->term_id;
            }
            $query = array('tag__in' => $tagIDs, 'post__not_in' => array($post->ID), 'showposts' => $number, 'nopaging' => 0, 'post_status' => 'publish', 'caller_get_posts' => 1);
            if (!empty($instance['cat'])) {
                $query['cat'] = implode(',', $instance['cat']);
            }
            $r = new WP_Query($query);
            if ($r->have_posts()) {
                ?>
		<?php 
                echo $before_widget;
                ?>
		<?php 
                if ($title) {
                    echo $before_title . $title . $after_title;
                }
                ?>
		<ul class="posts_list">
<?php 
                while ($r->have_posts()) {
                    $r->the_post();
                    ?>
			<li>
<?php 
                    if (!$disable_thumbnail) {
                        ?>
            <figure class="widget-related-img">
                <a class="thumbnail" href="<?php 
                        echo get_permalink();
                        ?>
" title="<?php 
                        the_title();
                        ?>
">
                    <?php 
                        if (has_post_thumbnail()) {
                            ?>
                    
                        <?php 
                            $thumb = get_post_thumbnail_id($r->post->ID);
                            $image = wp_get_attachment_image_src($thumb, 'full');
                            ?>
                        <img src="<?php 
                            echo adelante_image_resize(65, 65, "http://" . $_SERVER['SERVER_NAME'] . $image[0]);
                            ?>
" alt="<?php 
                            the_title();
                            ?>
" title="<?php 
                            the_title();
                            ?>
" />        
                    <?php 
                        } else {
                            ?>
                        <img src="<?php 
                            echo adelante_image_resize(65, 65, ADELANTE_BASE_URI . "/img/empty_thumb.png");
                            ?>
" alt="<?php 
                            the_title();
                            ?>
" title="<?php 
                            the_title();
                            ?>
" />
                    <?php 
                        }
                        ?>
                   
                </a>
                <?php 
                        adelante_image_border(null, 3, 0.1);
                        ?>
             </figure>
<?php 
                    }
                    //disable_thumbnail
                    ?>
				<div class="post_extra_info">
					<a href="<?php 
                    the_permalink();
                    ?>
" rel="bookmark" title="<?php 
                    echo esc_attr(get_the_title() ? get_the_title() : get_the_ID());
                    ?>
"><?php 
                    if (get_the_title()) {
                        the_title();
                    } else {
                        the_ID();
                    }
                    ?>
</a>
<?php 
                    if ($display_extra_type == 'time') {
                        ?>
					<time datetime="<?php 
                        the_time('Y-m-d');
                        ?>
"><?php 
                        echo get_the_date();
                        ?>
</time>
<?php 
                    } else {
                        ?>
					<p><?php 
                        echo wp_html_excerpt(get_the_excerpt(), $desc_length);
                        ?>
...</p>
<?php 
                    }
                    //end display extra type
                    ?>
				</div>
				<div class="clearboth"></div>
			</li>
<?php 
                }
                ?>
		</ul>
		<?php 
                echo $after_widget;
                // Reset the global $the_post as this query will have stomped on it
                wp_reset_query();
            }
            $cache[$args['widget_id']] = ob_get_flush();
            wp_cache_set('theme_widget_related_posts', $cache, 'widget');
        }
    }
コード例 #2
0
    function widget($args, $instance)
    {
        extract($args);
        $title = apply_filters('widget_title', empty($instance['title']) ? 'Photos on Picasa' : $instance['title'], $instance, $this->id_base);
        $username = $instance['username'];
        $columns = $instance['columns'];
        $items = $instance['items'];
        $width = $instance['width'];
        if (!empty($username)) {
            echo $before_widget;
            if ($title) {
                echo $before_title . $title . $after_title;
            }
            if (file_exists(ABSPATH . WPINC . '/rss.php')) {
                require_once ABSPATH . WPINC . '/rss.php';
            } else {
                require_once ABSPATH . WPINC . '/rss-functions.php';
            }
            $output = "<div class=picasa_wrap align=center>";
            $rss = fetch_rss("http://picasaweb.google.com/data/feed/base/user/{$username}?kind=album&alt=rss&hl=en_US&access=public&max-results={$items}");
            if (is_array($rss->items)) {
                $i = 0;
                $album = rand(0, sizeof($rss->items) - 1);
                foreach ($rss->items as $item) {
                    $title = $item['title'];
                    $title = str_replace("'", "", $title);
                    $title = str_replace('"', "", $title);
                    $link = $item['link'];
                    preg_match('/.*src="(.*?)".*/', $item['description'], $sub);
                    $path = $sub[1];
                    $path = str_replace("s160-", "s{$width}-", $path);
                    if ($i == $album) {
                        $rss2 = fetch_rss(str_replace("entry", "feed", $item['guid']) . "&kind=photo");
                        if (!$rss2) {
                            continue;
                        }
                        $j = 0;
                        foreach ($rss2->items as $item2) {
                            $title = $item2['title'];
                            $title = str_replace("'", "", $title);
                            $title = str_replace('"', "", $title);
                            preg_match('/.*src="(.*?)".*/', $item2['description'], $sub);
                            $path = $sub[1];
                            $path = str_replace("s288", "s{$width}-c", $path);
                            $array[$j++] = "<figure class='picasa-widget-img'><a href=" . $item2['link'] . " target=_blank>" . adelante_image_border("<img src=" . $path . " alt='{$title}' title='{$title}'>", 3, 0.1) . "</a></figure>";
                        }
                        srand((double) microtime() * 1000000);
                        shuffle($array);
                        for ($k = 0; $k < $items; $k++) {
                            $output .= $array[$k];
                            if ($items != 1) {
                                if (($k + 1) % $columns == 0) {
                                    $output .= "<div class=\"clearboth\"></div>";
                                } else {
                                    $output .= "";
                                }
                            } else {
                                $output .= "<div class=\"clearboth\"></div>";
                            }
                        }
                    }
                    $i++;
                }
            }
            echo "{$output}</div>" . $after_widget;
            ?>
		    <div class="clearboth"></div>
		<?php 
        }
    }
コード例 #3
0
function adelante_posts_slider($width = 960)
{
    global $post;
    $i = 1;
    $height = get_option('adelante_slider_height');
    // Check what post types to include in slider
    $post_types = adelante_get_post_types(false, false);
    foreach ($post_types as $post_type) {
        $inc = get_option('adelante_slider_' . $post_type);
        if ($inc == 'checked') {
            $types[] = $post_type;
        }
    }
    adelante_buffer_start();
    // Start outputting
    echo '<ul>';
    $args = array('post_type' => $types);
    $ppp = get_option('adelante_slider_post_count');
    if ($ppp > 0) {
        $args['posts_per_page'] = $ppp;
    }
    query_posts($args);
    if (have_posts()) {
        while (have_posts()) {
            the_post();
            $thumbnail = wp_get_attachment_image_src(get_post_thumbnail_id(), 'large');
            ?>
            <li id="slide-<?php 
            echo $i++;
            ?>
" class="slide clearboth">
                <div class="thumb clearfix">
                    <a href="<?php 
            the_permalink();
            ?>
">
                        <?php 
            if (!empty($thumbnail[0])) {
                ?>
                            <figure class="gallery-item aligncenter"><img class="featured_image post" src="<?php 
                echo adelante_image_resize($height - 21, $width - 410, $thumbnail[0]);
                ?>
" alt="<?php 
                the_title();
                ?>
" /><?php 
                adelante_image_border(null, 10, 0.05);
                ?>
</figure>
                        <?php 
            } else {
                ?>
                            <figure class="gallery-item aligncenter"><img class="featured_image post" src="<?php 
                echo adelante_image_resize($height - 21, $width - 410, get_template_directory_uri() . "/img/placeholder.png");
                ?>
" alt="placeholder" /></figure>
                        <?php 
            }
            ?>
                    </a>
                    <div class="postsnip">
                        <h2><a href="<?php 
            the_permalink();
            ?>
"><?php 
            echo $post->post_title;
            ?>
</a></h2>
                        <?php 
            the_excerpt();
            ?>
                        <p></p><div class="clearboth"></div>
                        <a class="adelante-button white" href="<?php 
            the_permalink();
            ?>
" title="<?php 
            the_title();
            ?>
">Read More...</a>
                    </div>
                </div>
               
            </li>            
        <?php 
        }
    } else {
        $output .= '<figure class="gallery-item aligncenter"><a href="' . site_url() . '/wp-admin/post-new.php?post_type=slider"><img class="post" src="' . adelante_image_resize($height - 21, $width - 410, get_template_directory_uri() . "/img/placeholder.png") . '" alt="placeholder" title="Please add items to your slider by clicking on this slide" /></a></figure>';
    }
    echo '</ul>';
    wp_reset_query();
    $output = ob_get_contents();
    adelante_buffer_end();
    return $output;
}