From eb6db19306f4a1e885e7113de40ae0d706d699ff Mon Sep 17 00:00:00 2001 From: "Philip M. Hofer (Frumph)" Date: Wed, 30 Dec 2009 03:56:58 -0800 Subject: [PATCH] ComicBlogPostWidget.inc revamp to handle a query_post() on it's own if is_home() so it can capture the right $post Signed-off-by: Philip M. Hofer (Frumph) --- widgets/ComicBlogPostWidget.inc | 38 +++++++++++++++++++++++++++------ 1 file changed, 31 insertions(+), 7 deletions(-) diff --git a/widgets/ComicBlogPostWidget.inc b/widgets/ComicBlogPostWidget.inc index cfaccc3..a79e3ce 100644 --- a/widgets/ComicBlogPostWidget.inc +++ b/widgets/ComicBlogPostWidget.inc @@ -13,20 +13,42 @@ class ComicPressComicBlogPostWidget extends WP_Widget { function ComicPressComicBlogPostWidget($skip_widget_init = false) { if (!$skip_widget_init) { - $widget_ops = array('classname' => __CLASS__, 'description' => __('Displays the comic blog post, ..used to be around the comic areas.','comicpress') ); + $widget_ops = array('classname' => __CLASS__, 'description' => __('Displays the comic blog post. (used within the comic sidebar areas)','comicpress') ); $this->WP_Widget(__CLASS__, __('ComicPress Comic Blog Post','comicpress'), $widget_ops); } } function widget($args, $instance) { global $post, $wp_query; - if ((is_home() || is_single()) && in_comic_category()) { - extract($args, EXTR_SKIP); + if (!is_home() && $instance['onlyhome'] || (is_page() || is_archive() || is_search())) return; + extract($args, EXTR_SKIP); + if (is_home()) { + Protect(); + $comic_query = 'showposts=1&cat='.get_all_comic_categories_as_cat_string(); + $posts = query_posts($comic_query); + if (have_posts()) { + while (have_posts()) : the_post(); + if (!empty($post->post_content)) { + echo $before_widget; + $temp_query = $wp_query->is_single; + $wp_query->is_single = true; + $title = empty($instance['title']) ? '' : apply_filters('widget_title', $instance['title']); + if ( !empty( $title ) ) { echo "
".$title."
\r\n"; } + the_content(); + $wp_query->is_single = $temp_query; + echo $after_widget; + } + endwhile; + } + Restore(); + UnProtect(); + wp_reset_query(); + } else { if (!empty($post->post_content)) { echo $before_widget; $title = empty($instance['title']) ? '' : apply_filters('widget_title', $instance['title']); - if ( !empty( $title ) ) { echo '
'.$title.'
'; } - echo $post->post_content; + if ( !empty( $title ) ) { echo "
".$title."
\r\n"; } + the_content(); echo $after_widget; } } @@ -35,15 +57,17 @@ class ComicPressComicBlogPostWidget extends WP_Widget { function update($new_instance, $old_instance) { $instance = $old_instance; $instance['title'] = strip_tags($new_instance['title']); + $instance['onlyhome'] = (bool)( $new_instance['onlyhome'] == 1 ? true : false ); return $instance; } function form($instance) { - $instance = wp_parse_args( (array) $instance, array( 'title' => '' ) ); + $instance = wp_parse_args( (array) $instance, array( 'title' => '', 'onlyhome' => false ) ); $title = strip_tags($instance['title']); + $onlyhome = $instance['onlyhome']; ?>

- +