celebbiz Posted November 27, 2012 Share Posted November 27, 2012 Hey guys real quick question for the pro's I have a recent posts sidebar widget on our site and I can select say show the last 10 most popular posts. The problem I am running into is that my keyword densaty is getting out of wack as the title of the posts is showing 10 times. I would like to exclude some words from showing from the widget... Example: I have say 10 posts: Bald Red Widgets, Harry Red Widgets, Smooth Red Widgets etc etc. I would like for the widget to not use the full title of the posts and not show the word "Red Widgets". I was told I should do this useing something like the str_replace function however I have no idea where to put it or the code itself, can someone help? //TABBED POSTS class oswc_tabbed_posts extends WP_Widget { function oswc_tabbed_posts() { /* Widget settings. */ $widget_ops = array( 'classname' => 'Extended: Post Tabs', 'description' => __( 'Displays posts, comments, and tags in a jQuery tabbed format','made') ); /* Widget control settings. */ $control_ops = array( 'width' => 200, 'height' => 350, 'id_base' => 'oswc_tabbed_posts' ); /* Create the widget. */ $this->WP_Widget( 'oswc_tabbed_posts', 'Extended: Post Tabs', $widget_ops, $control_ops ); } function widget( $args, $instance ) { global $oswc_front, $oswc_misc, $oswcPostTypes; $oswc_skin = $oswc_misc['skin']; //check to see if we are on a review type page $reviewPage = false; $post_id = $GLOBALS['post']->ID; $postTypeName = oswc_get_review_meta($post_id); $postTypeId = get_post_type($post_id); //setup the posttypeid object, which is used below to determine which post type we're on //review listing page if(!empty($postTypeName) && ($oswcPostTypes->has_type($postTypeName) || $oswcPostTypes->has_type(strtolower($postTypeName)))){ $reviewPage = true; $reviewType = $oswcPostTypes->get_type_by_name($postTypeName); //get the review type object $reviewSkin = $reviewType->skin; //get the review skin if($reviewSkin=="dark") $oswc_skin="dark"; if($reviewSkin=="light") $oswc_skin=""; } //review taxonomy page if(is_tax()) { $reviewPage = true; $reviewType = $oswcPostTypes->get_type_by_id($postTypeId); $reviewSkin = $reviewType->skin; //get the review skin if($reviewSkin=="dark") $oswc_skin="dark"; if($reviewSkin=="light") $oswc_skin=""; } //single review page if (is_single() && $oswcPostTypes->has_type($postTypeId, true)) { $reviewPage = true; $reviewType = $oswcPostTypes->get_type_by_id($postTypeId); $reviewSkin = $reviewType->skin; //get the review skin if($reviewSkin=="dark") $oswc_skin="dark"; if($reviewSkin=="light") $oswc_skin=""; } //get all template tags (need to be excluded below) $oswc_featured_tag = $oswc_front['featured_tag']; $oswc_spotlight_tags = $oswc_front['spotlight_tags']; $oswc_trending_tag = $oswc_front['trending_tags']; $oswc_latest_tag = $oswc_misc['latest_tag']; $oswc_dontmiss_tags = $oswc_front['dontmiss_tags']; extract( $args ); /* User-selected settings. */ $thumbsize = $instance['thumbsize']; $showpopular = $instance['showpopular']; $showrecent = $instance['showrecent']; $showcomments = $instance['showcomments']; $showtags = $instance['showtags']; $numpopular = $instance['numpopular']; $numrecent = $instance['numrecent']; $numcomments = $instance['numcomments']; $numtags = $instance['numtags']; $ordertags = $instance['ordertags']; /* HTML output */ /* Before widget (defined by themes). */ echo $before_widget; ?> <div id="tabbed-posts" class="complex-list<?php if($thumbsize=="footer-thumbnail") { ?> small<?php } ?>"> <ul class="tabnav"> <?php if($showpopular) { ?><li><a class="first" href="#tabs-popular"><?php _e('Popular','made'); ?></a></li><?php } ?> <?php if($showrecent) { ?><li><a href="#tabs-recent"><?php _e('Recent','made'); ?></a></li><?php } ?> <?php if($showcomments) { ?><li><a href="#tabs-comments"><?php _e('Comments','made'); ?></a></li><?php } ?> <?php if($showtags) { ?><li><a href="#tabs-tags"><?php _e('Tags','made'); ?></a></li><?php } ?> </ul> <br class="clearer" /> <div class="tabdiv-wrapper"> <?php if($showpopular) { ?> <div id="tabs-popular" class="tabdiv"> <ul> <?php // create popular query $postcount=0; // get array of review types $arrTypes = array(); foreach($oswcPostTypes->postTypes as $postType){ if($postType->enabled) { array_push($arrTypes, $postType->id); } } array_push($arrTypes, 'post'); // setup the query $args=array('suppress_filters' => true, 'posts_per_page' => $numpopular, 'order' => 'DESC', 'orderby' => 'comment_count', 'post_type' => $arrTypes); $pop_loop = new WP_Query($args); if ($pop_loop->have_posts()) : while ($pop_loop->have_posts()) : $pop_loop->the_post(); $postcount++; $postType = get_post_type(); //get post type $reviewType = $oswcPostTypes->get_type_by_id($postType); //get review type object $isreview=false; if($postType!='post' && $postType!='page') $isreview=true; //set review variable $icon = $reviewType->icon; $icon_light = $reviewType->icon_light; if($oswc_skin=="dark") $icon=$icon_light; if(!isset($icon)){ $icon = get_template_directory_uri() . '/images/more-grey.png'; } //show rating? $rating_hide = get_post_meta(get_the_ID(), "Hide Rating", $single = true); //check if this is a video post $isvideo=false; $video = get_post_meta(get_the_ID(), "Video", $single = true); if($video!="") $isvideo=true; ?> <li> <div class="floatleft"> <a href="<?php the_permalink(); ?>" class="thumbnail darken<?php if($isvideo) { ?> video<?php } ?> small" title="<?php the_title(); ?>"><?php the_post_thumbnail($thumbsize, array( 'title'=> '' )); ?></a> </div> <div class="floatleft"> <a class="post-title<?php if(!$isreview) { ?> wide<?php } ?>" href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a> <?php if($isreview) { ?> <br class="clearer" /> <div class="icon"> <img alt="icon" src="<?php echo $icon; ?>" width="16" height="16" /> </div> <?php } ?> <?php if($isreview && $rating_hide!="true") { ?> <div class="rating-wrapper small"><?php $oswcPostTypes->the_rating($reviewType); // show the rating ?></div> <?php } ?> </div> <br class="clearer" /> </li> <?php endwhile; endif; ?> <?php wp_reset_query(); ?> <li class="last"> </li> </ul> </div> <?php } ?> <?php if($showrecent) { ?> <div id="tabs-recent" class="tabdiv"> <ul> <?php // create recent query $postcount=0; $arrTypes = array(); foreach($oswcPostTypes->postTypes as $postType){ if($postType->enabled) { array_push($arrTypes, $postType->id); } } array_push($arrTypes, 'post'); // setup the query $args=array('suppress_filters' => true, 'posts_per_page' => $numrecent, 'order' => 'DESC', 'orderby' => 'date', 'post_type' => $arrTypes); $pop_loop = new WP_Query($args); if ($pop_loop->have_posts()) : while ($pop_loop->have_posts()) : $pop_loop->the_post(); $postcount++; $postType = get_post_type(); //get post type $reviewType = $oswcPostTypes->get_type_by_id($postType); //get review type object $isreview=false; if($postType!='post' && $postType!='page') $isreview=true; //set review variable $icon = $reviewType->icon; $icon_light = $reviewType->icon_light; if($oswc_skin=="dark") $icon=$icon_light; if(!isset($icon)){ $icon = get_template_directory_uri() . '/images/more-grey.png'; } //show rating? $rating_hide = get_post_meta(get_the_ID(), "Hide Rating", $single = true); //check if this is a video post $isvideo=false; $video = get_post_meta(get_the_ID(), "Video", $single = true); if($video!="") $isvideo=true; ?> <li> <div class="floatleft"> <a href="<?php the_permalink(); ?>" class="thumbnail darken<?php if($isvideo) { ?> video<?php } ?> small" title="<?php the_title(); ?>"><?php the_post_thumbnail($thumbsize, array( 'title'=> '' )); ?></a> </div> <div class="floatleft"> <a class="post-title<?php if(!$isreview) { ?> wide<?php } ?>" href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a> <?php if($isreview) { ?> <br class="clearer" /> <div class="icon"> <img alt="icon" src="<?php echo $icon; ?>" width="16" height="16" /> </div> <?php } ?> <?php if($isreview && $rating_hide!="true") { ?> <div class="rating-wrapper small"><?php $oswcPostTypes->the_rating($reviewType); // show the rating ?></div> <?php } ?> </div> <br class="clearer" /> </li> <?php endwhile; endif; ?> <?php wp_reset_query(); ?> <li class="last"> </li> </ul> </div> <?php } ?> <?php if($showcomments) { ?> <div id="tabs-comments" class="tabdiv"> <ul> <?php //get recent comments $args = array( 'status' => 'approve', 'number' => $numcomments ); $postcount=0; $comments = get_comments($args); foreach($comments as $comment) : $postcount++; $commentcontent = strip_tags($comment->comment_content); if (strlen($commentcontent)>110) { $commentcontent = substr($commentcontent, 0, 107) . "..."; } $commentauthor = $comment->comment_author; if (strlen($commentauthor)>50) { $commentauthor = substr($commentauthor, 0, 47) . "..."; } $commentid = $comment->comment_ID; $commenturl = get_comment_link($commentid); ?> <li><a<?php if($postcount==1) { ?> class="first"<?php } ?> href="<?php echo $commenturl; ?>">"<?php echo $commentcontent; ?>"<span> - <?php echo $commentauthor; ?></span></a></li> <?php endforeach; ?> <li class="last"> </li> </ul> </div> <?php } ?> <?php if($showtags) { ?> <div id="tabs-tags" class="tabdiv"> <?php //setup and display tag cloud $featuredid = get_tag_id($oswc_featured_tag); if($featuredid=='') $featuredid=0; $spotlightid = get_tag_id($oswc_spotlight_tags); if($spotlightid=='') $spotlightid=0; $trendingid = get_tag_id($oswc_trending_tag); if($trendingid=='') $trendingid=0; $latestid = get_tag_id($oswc_latest_tag); if($latestid=='') $latestid=0; $dontmissid = get_tag_id($oswc_dontmiss_tags); if($dontmissid=='') $dontmissid=0; $excludes=$featuredid.','.$spotlightid.','.$trendingid.','.$latestid.','.$dontmissid; //echo "excludes=".$excludes; if($ordertags=='count') { $order="DESC"; } $tagargs = array('smallest' => 8, 'largest' => 22, 'orderby' => $ordertags, 'order' => $order, 'number' => $numtags, 'exclude' => array($excludes)); //as of 5/2012 the exclude parameter does not work wp_tag_cloud($tagargs); ?> </div> <?php } ?> </div> </div> <?php /* After widget (defined by themes). */ echo $after_widget; ?> <?php } function update( $new_instance, $old_instance ) { $instance = $old_instance; /* Strip tags (if needed) and update the widget settings. */ $instance['thumbsize'] = strip_tags( $new_instance['thumbsize'] ); $instance['showpopular'] = isset( $new_instance['showpopular'] ); $instance['showrecent'] = isset( $new_instance['showrecent'] ); $instance['showcomments'] = isset( $new_instance['showcomments'] ); $instance['showtags'] = isset( $new_instance['showtags'] ); $instance['numpopular'] = strip_tags( $new_instance['numpopular'] ); $instance['numrecent'] = strip_tags( $new_instance['numrecent'] ); $instance['numcomments'] = strip_tags( $new_instance['numcomments'] ); $instance['numtags'] = strip_tags( $new_instance['numtags'] ); $instance['ordertags'] = strip_tags( $new_instance['ordertags'] ); return $instance; } function form( $instance ) { /* Set up some default widget settings. */ $defaults = array( 'thumbsize' => 'widget-thumbnail', 'showpopular' => true, 'showrecent' => true, 'showcomments' => true, 'showtags' => true, 'numpopular' => 10, 'numrecent' => 10, 'numcomments' => 7, 'numtags' => 20, 'ordertags' => 'name' ); $instance = wp_parse_args( (array) $instance, $defaults ); ?> <p> <?php _e( 'Thumbnail Size:','made'); ?> <input class="radio" type="radio" <?php if($instance['thumbsize']=='widget-thumbnail') { ?>checked <?php } ?>name="<?php echo $this->get_field_name( 'thumbsize' ); ?>" value="widget-thumbnail" /> <?php _e( 'Large','made'); ?> <input class="radio" type="radio" <?php if($instance['thumbsize']!='widget-thumbnail') { ?>checked <?php } ?>name="<?php echo $this->get_field_name( 'thumbsize' ); ?>" value="footer-thumbnail" /> <?php _e( 'Small','made'); ?> </p> <p> <input class="checkbox" type="checkbox" <?php checked(isset( $instance['showpopular']) ? $instance['showpopular'] : 0 ); ?> id="<?php echo $this->get_field_id( 'showpopular' ); ?>" name="<?php echo $this->get_field_name( 'showpopular' ); ?>" /> <?php _e( 'Display','made'); ?> <input id="<?php echo $this->get_field_id( 'numpopular' ); ?>" name="<?php echo $this->get_field_name( 'numpopular' ); ?>" value="<?php echo $instance['numpopular']; ?>" style="width:30px" /> <?php _e( 'popular posts','made'); ?> </p> <p> <input class="checkbox" type="checkbox" <?php checked(isset( $instance['showrecent']) ? $instance['showrecent'] : 0 ); ?> id="<?php echo $this->get_field_id( 'showrecent' ); ?>" name="<?php echo $this->get_field_name( 'showrecent' ); ?>" /> <?php _e( 'Display','made'); ?> <input id="<?php echo $this->get_field_id( 'numrecent' ); ?>" name="<?php echo $this->get_field_name( 'numrecent' ); ?>" value="<?php echo $instance['numrecent']; ?>" style="width:30px" /> <?php _e( 'recent posts','made'); ?> </p> <p> <input class="checkbox" type="checkbox" <?php checked(isset( $instance['showcomments']) ? $instance['showcomments'] : 0 ); ?> id="<?php echo $this->get_field_id( 'showcomments' ); ?>" name="<?php echo $this->get_field_name( 'showcomments' ); ?>" /> <?php _e( 'Display','made'); ?> <input id="<?php echo $this->get_field_id( 'numcomments' ); ?>" name="<?php echo $this->get_field_name( 'numcomments' ); ?>" value="<?php echo $instance['numcomments']; ?>" style="width:30px" /> <?php _e( 'comments','made'); ?> </p> <p> <input class="checkbox" type="checkbox" <?php checked(isset( $instance['showtags']) ? $instance['showtags'] : 0 ); ?> id="<?php echo $this->get_field_id( 'showtags' ); ?>" name="<?php echo $this->get_field_name( 'showtags' ); ?>" /> <?php _e( 'Display','made'); ?> <input id="<?php echo $this->get_field_id( 'numtags' ); ?>" name="<?php echo $this->get_field_name( 'numtags' ); ?>" value="<?php echo $instance['numtags']; ?>" style="width:30px" /> <?php _e( 'tags','made'); ?> </p> <p> <input class="radio" type="radio" <?php if($instance['ordertags']=='name') { ?>checked <?php } ?>name="<?php echo $this->get_field_name( 'ordertags' ); ?>" value="name" /> <?php _e( 'Order tags by name','made'); ?><br /> <input class="radio" type="radio" <?php if($instance['ordertags']=='count') { ?>checked <?php } ?>name="<?php echo $this->get_field_name( 'ordertags' ); ?>" value="count" /> <?php _e( 'Order tags by post count','made'); ?> </p> <?php } } Quote Link to comment https://forums.phpfreaks.com/topic/271247-dont-show-full-post-title-on-popular-posts-sidebar-widget/ Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.