Viewing 6 posts - 1 through 6 (of 6 total)
  • Author
    Posts
  • #247975

    I’m using the widget area pointing to the Latest News Widget. For some reason there is no “Read More”. How can I add this to my widget area. Would prefer a child theme fix if that is possible.

    Thanks.

    #248644

    Hey eswyt!

    Place this code into the child theme functions.php file:

    
    
    /**
     * AVIA NEWSBOX
     *
     * Widget that creates a list of latest news entries
     *
     * @package AviaFramework
     * @todo replace the widget system with a dynamic one, based on config files for easier widget creation
     */
    
    if (!class_exists('avia_newsbox'))
    {
    	class avia_newsbox extends WP_Widget {
    
    		var $avia_term = '';
    		var $avia_post_type = '';
    		var $avia_new_query = '';
    
    		function avia_newsbox()
    		{
    			$widget_ops = array('classname' => 'newsbox', 'description' => 'A Sidebar widget to display latest post entries in your sidebar' );
    
    			$this->WP_Widget( 'newsbox', THEMENAME.' Latest News', $widget_ops );
    		}
    
    		function widget($args, $instance)
    		{
    
    			global $avia_config;
    
    			extract($args, EXTR_SKIP);
    			echo $before_widget;
    
    			$title = empty($instance['title']) ? '' : apply_filters('widget_title', $instance['title']);
    			$count = empty($instance['count']) ? '' : $instance['count'];
    			$cat = empty($instance['cat']) ? '' : $instance['cat'];
    			$excerpt = empty($instance['excerpt']) ? '' : $instance['excerpt'];
    			$image_size = isset($avia_config['widget_image_size']) ? $avia_config['widget_image_size'] : 'widget';
    
    			if ( !empty( $title ) ) { echo $before_title . $title . $after_title; };
    
    			if(empty($this->avia_term))
    			{
    				$additional_loop = new WP_Query("cat=".$cat."&posts_per_page=".$count);
    			}
    			else
    			{
    				$catarray = explode(',', $cat);
    
    				if(empty($catarray[0]))
    				{
    					$new_query = array("posts_per_page"=>$count,"post_type"=>$this->avia_post_type);
    				}
    				else
    				{
    					if($this->avia_new_query)
    					{
    						$new_query = $this->avia_new_query;
    					}
    					else
    					{
    						$new_query = array(	"posts_per_page"=>$count, 'tax_query' => array(
    														array( 'taxonomy' => $this->avia_term,
    															   'field' => 'id',
    															   'terms' => explode(',', $cat),
    															   'operator' => 'IN')
    															  )
    														);
    					}
    				}
    
    				$additional_loop = new WP_Query($new_query);
    			}
    
    			if($additional_loop->have_posts()) :
    
    			echo '<ul class="news-wrap image_size_'.$image_size.'">';
    			while ($additional_loop->have_posts()) : $additional_loop->the_post();
    
    			$format = "";
    			if(empty($this->avia_post_type)) 	$format = $this->avia_post_type;
    			if(empty($format)) 					$format = get_post_format();
    	     	if(empty($format)) 					$format = 'standard';
    
    			echo '<li class="news-content post-format-'.$format.'">';
    
    			//check for preview images:
    			$image = "";
    
    			if(!current_theme_supports('force-post-thumbnails-in-widget'))
    			{
    				$slides = avia_post_meta(get_the_ID(), 'slideshow', true);
    
    				if( $slides != "" && !empty( $slides[0]['slideshow_image'] ) )
    				{
    					$image = avia_image_by_id($slides[0]['slideshow_image'], $image_size, 'image');
    				}
    			}
    
    			if(current_theme_supports( 'post-thumbnails' ) && !$image )
    			{
    				$image = get_the_post_thumbnail( get_the_ID(), $image_size );
    			}
    
    			$time_format = apply_filters( 'avia_widget_time', get_option('date_format')." - ".get_option('time_format'), 'avia_newsbox' );
    
    			echo "<a class='news-link' title='".get_the_title()."' href='".get_permalink()."'>";
    
    			$nothumb = (!$image) ? 'no-news-thumb' : '';
    
    			echo "<span class='news-thumb $nothumb'>";
    			echo $image;
    			echo "</span>";
    			if(empty($avia_config['widget_image_size']) || 'display title and excerpt' != $excerpt)
    			{
    				echo "<strong class='news-headline'>".get_the_title();
    				
    				if($time_format)
    				{
    					echo "<span class='news-time'>".get_the_time($time_format)."</span>";	
    				}
    				
    				echo "</strong>";
    			}
    			echo "</a>";
    
    			if('display title and excerpt' == $excerpt)
    			{
    				echo "<div class='news-excerpt'>";
    
    				if(!empty($avia_config['widget_image_size']))
    				{
    					echo "<a class='news-link-inner' title='".get_the_title()."' href='".get_permalink()."'>";
    					echo "<strong class='news-headline'>".get_the_title()."</strong>";
    					echo "</a>";
    					if($time_format)
    					{
    						echo "<span class='news-time'>".get_the_time($time_format)."</span>";	
    					}
    
    				}
    				the_excerpt();
    echo '<div class="read-more-link"><a href="'.get_permalink().'" class="more-link">'.__('Read more','avia_framework').'<span class="more-link-arrow">  &rarr;</span></a></div>';
    				echo "</div>";
    			}
    
    			echo '</li>';
    
    			endwhile;
    			echo "</ul>";
    			wp_reset_postdata();
    			endif;
    
    			echo $after_widget;
    
    		}
    
    		function update($new_instance, $old_instance)
    		{
    			$instance = $old_instance;
    			$instance['title'] = strip_tags($new_instance['title']);
    			$instance['count'] = strip_tags($new_instance['count']);
    			$instance['excerpt'] = strip_tags($new_instance['excerpt']);
    			$instance['cat'] = implode(',',$new_instance['cat']);
    			return $instance;
    		}
    
    		function form($instance)
    		{
    			$instance = wp_parse_args( (array) $instance, array( 'title' => '', 'count' => '', 'cat' => '', 'excerpt'=>'' ) );
    			$title = strip_tags($instance['title']);
    			$count = strip_tags($instance['count']);
    			$excerpt = strip_tags($instance['excerpt']);
    
    			$elementCat = array("name" 	=> "Which categories should be used for the portfolio?",
    								"desc" 	=> "You can select multiple categories here",
    					            "id" 	=> $this->get_field_name('cat')."[]",
    					            "type" 	=> "select",
    					            "std"   => strip_tags($instance['cat']),
    					            "class" => "",
    	            				"multiple"=>6,
    					            "subtype" => "cat");
    			//check if a different taxonomy than the default is set
    			if(!empty($this->avia_term))
    			{
    				$elementCat['taxonomy'] = $this->avia_term;
    			}
    
    			$html = new avia_htmlhelper();
    
    	?>
    			<p><label for="<?php echo $this->get_field_id('title'); ?>">Title:
    			<input class="widefat" id="<?php echo $this->get_field_id('title'); ?>" name="<?php echo $this->get_field_name('title'); ?>" type="text" value="<?php echo esc_attr($title); ?>" /></label></p>
    
    			<p>
    				<label for="<?php echo $this->get_field_id('count'); ?>">How many entries do you want to display: </label>
    				<select class="widefat" id="<?php echo $this->get_field_id('count'); ?>" name="<?php echo $this->get_field_name('count'); ?>">
    					<?php
    					$list = "";
    					for ($i = 1; $i <= 20; $i++ )
    					{
    						$selected = "";
    						if($count == $i) $selected = 'selected="selected"';
    
    						$list .= "<option $selected value='$i'>$i</option>";
    					}
    					$list .= "</select>";
    					echo $list;
    					?>
    
    			</p>
    
    			<p><label for="<?php echo $this->get_field_id('cat'); ?>">Choose the categories you want to display (multiple selection possible):
    			<?php echo $html->select($elementCat); ?>
    			</label></p>
    
    			<p>
    				<label for="<?php echo $this->get_field_id('excerpt'); ?>">Display title only or title & excerpt</label>
    				<select class="widefat" id="<?php echo $this->get_field_id('excerpt'); ?>" name="<?php echo $this->get_field_name('excerpt'); ?>">
    					<?php
    					$list = "";
    					$answers = array('show title only','display title and excerpt');
    					foreach ($answers as $answer)
    					{
    						$selected = "";
    						if($answer == $excerpt) $selected = 'selected="selected"';
    
    						$list .= "<option $selected value='$answer'>$answer</option>";
    					}
    					$list .= "</select>";
    					echo $list;
    					?>
    
    			</p>
    
    	<?php
    		}
    	}
    }
    
    

    Cheers!
    Peter

    #248671
    This reply has been marked as private.
    #248680

    Hi!

    What’s the website url/domain?

    Best regards,
    Peter

    #248705
    This reply has been marked as private.
    #250915

    Hi!

    Are you sure the password is correct? I tried it but I get an error message: “The password you entered for the username choa is incorrect”.

    Best regards,
    Peter

Viewing 6 posts - 1 through 6 (of 6 total)
  • You must be logged in to reply to this topic.