• Hi all.
    I have a problem with the other attribute, the images in this code and I do not know where to implement it.
    [ redundant link removed ]

    <?php
    add_action( ‘widgets_init’, ‘themeloy_rec_register_widgets’ );
    
    function themeloy_rec_register_widgets() {
    register_widget( ‘themeloy_rec_posts_widget’ );
    }
    
    class themeloy_rec_posts_widget extends WP_Widget {
    
    function __construct() {
    $widget_ops = array(
    ‘classname’ => ‘post_list_widget’,
    ‘description’ => __(‘Display a list of recent post entries from choosing categories.’, ‘tl_back’)
    );
    parent::__construct(‘rec-recent-posts’, __(‘Themeloy: Recently Posts’, ‘tl_back’), $widget_ops);
    }
    
    function widget($args, $instance) {
    extract($args);
    $title = apply_filters(‘widget_title’, empty($instance[‘title’]) ? ‘Recently Articles’ : $instance[‘title’], $instance, $this->id_base);
    if (!$number = absint($instance[‘number’]))
    $number = 6;
    if (!$cats = $instance[“cats”])
    $cats = ”;
    
    $post_cat_args = array(
    ‘showposts’ => $number,
    ‘category__in’ => $cats,
    );
    
    $post_cat_widget = null;
    $post_cat_widget = new WP_Query($post_cat_args);
    
    echo $before_widget;
    
    echo $before_title;
    echo $instance[“title”];
    echo $after_title;
    
    // Post list in widget
    echo ‘<div class=”widget_container”>’;
    echo ‘<ul class=”post_list”>’;
    
    while ($post_cat_widget->have_posts()) {
    $post_cat_widget->the_post();
    $post_id = get_the_ID();
    ?>
    <li class=”clearfix”>
    <div class=”img_thumbnail feature-item”>
    <?php
    echo ‘<a href="”‘" title="”‘">’;?>
    <?php if ( has_post_thumbnail()) {
    $image = wp_get_attachment_image_src( get_post_thumbnail_id( $post_id ), ‘small-feature’ );?>
    <img src="”<?php" />” />
    <?php }else{echo ‘<img />’;} ?>
    
    </a>
    <?php echo themeloy_post_type(); ?>
    </div>
    <div class=”list_desc”>
    <h4 class=”list_title”><a href="”<?php">” rel=”bookmark” title=”<?php the_title_attribute(); ?>”>
    <?php the_title(); ?>
    </a></h4>
    <?php echo themeloy_post_meta(get_the_ID());?>
    <?php
    $post_review = get_post_custom_values(‘enable_review_themeloy_select’, $post_id);
    $post_review = ($post_review[0] != ”) ? $post_review[0] : of_get_option(‘enable_all_review’);
    $total_review = absint(themeloy_get_total_review($post_id));
    if($post_review == ‘1’){
    ?>
    <div class=”ratings”>
    <div class=”rating-box”>
    <div class=”rating” style=”width:<?php echo themeloy_get_total_review(get_the_ID()); ?>%”></div>
    </div>
    </div>
    <?php }?>
    
    </div>
    
    </li>
    <?php
    }
    
    wp_reset_query();
    
    echo “</ul>\n”;
    echo “</div>\n”;
    echo $after_widget;
    }
    
    function update( $new_instance, $old_instance ) {
    $instance = $old_instance;
    $instance[‘title’] = strip_tags($new_instance[‘title’]);
    $instance[‘cats’] = $new_instance[‘cats’];
    $instance[‘number’] = absint($new_instance[‘number’]);
    
    return $instance;
    }
    
    function form( $instance ) {
    $title = isset($instance[‘title’]) ? esc_attr($instance[‘title’]) : ‘Recent Posts’;
    $number = isset($instance[‘number’]) ? absint($instance[‘number’]) : 5;
    
    ?>
    <p><label for=”<?php echo $this->get_field_id(‘title’); ?>”><?php _e(‘Title:’, ‘tl_back’); ?></label>
    <input class=”widefat” id=”<?php echo $this->get_field_id(‘title’); ?>” name=”<?php echo $this->get_field_name(‘title’); ?>” type=”text” value=”<?php echo $title; ?>” /></p>
    
    <p><label for=”<?php echo $this->get_field_id(‘number’); ?>”><?php _e(‘Number of posts to show:’, ‘tl_back’); ?></label>
    <input id=”<?php echo $this->get_field_id(‘number’); ?>” name=”<?php echo $this->get_field_name(‘number’); ?>” type=”text” value=”<?php echo $number; ?>” size=”3″ /></p>
    
    <p>
    <label for=”<?php echo $this->get_field_id(‘cats’); ?>”><?php _e(‘Select categories to include in the recent posts list:’, ‘tl_back’);?>
    
    <?php
    $categories= get_categories(‘hide_empty=0’);
    echo “<br/>”;
    foreach ($categories as $cat) {
    $option = ‘<input type=”checkbox” id=”‘ . $this->get_field_id(‘cats’) . ‘[]” name=”‘ . $this->get_field_name(‘cats’) . ‘[]”‘;
    
    if (isset($instance[‘cats’])) {
    foreach ($instance[‘cats’] as $cats) {
    if ($cats == $cat->term_id) {
    $option = $option . ‘ checked=”checked”‘;
    }
    }
    }
    
    $option .= ‘ value=”‘ . $cat->term_id . ‘” />’;
    $option .= ‘&nbsp;’;
    $option .= $cat->cat_name;
    $option .= ‘<br />’;
    echo $option;
    }
    
    ?>
    </label>
    </p>
    
    <?php
    }
    }
    ?>

    The page I need help with: [log in to see the link]

Viewing 6 replies - 1 through 6 (of 6 total)
  • Your code seems to be horribly broken on this post and on your link. So I think this makes it hard for people to help. You have to post more readable code and explain what your issue is better for people to be able to understand how to help you better.

    All your quotes are wrong, and your statements aren’t enclosed correctly and the code isn’t indented properly. Are you coding in MS Word? It makes it very hard to read and it surely won’t run like that at all. Also with your description of your issue isn’t very clear what you’re referring to.

    Thread Starter antenaro

    (@antenaro)

    The problem is that the ALT attribute is missing.
    I don’t know where to implement it.
    The error is seen on the w3c validator.

    I need support to fix ALT error.
    And to make the closures that are open.

    I added another url with the code but it was moderated
    Here is the url with the code

    <?php
    add_action( 'widgets_init', 'themeloy_rec_register_widgets' );
    
    function themeloy_rec_register_widgets() {
    	register_widget( 'themeloy_rec_posts_widget' );
    }
    
    class themeloy_rec_posts_widget extends WP_Widget {
    
    			
    	function __construct() {
        	$widget_ops = array(
    			'classname'   => 'post_list_widget', 
    			'description' => __('Display a list of recent post entries from choosing categories.', 'tl_back')
    		);
        	parent::__construct('rec-recent-posts', __('Themeloy: Recently Posts', 'tl_back'), $widget_ops);
    	}
    
    	function widget($args, $instance) {
            extract($args);
            $title = apply_filters('widget_title', empty($instance['title']) ? 'Recently Articles' : $instance['title'], $instance, $this->id_base);
            if (!$number = absint($instance['number']))
                $number = 6;
            if (!$cats = $instance["cats"])
                $cats = '';
    
            $post_cat_args = array(
                'showposts' => $number,
                'category__in' => $cats,
            );
    
            $post_cat_widget = null;
            $post_cat_widget = new WP_Query($post_cat_args);
    
            echo $before_widget;
    
            echo $before_title;
            echo $instance["title"];
            echo $after_title;
    
            // Post list in widget
    		echo '<div class="widget_container">';
            echo '<ul class="post_list">';
    
            while ($post_cat_widget->have_posts()) {
                $post_cat_widget->the_post();
    			$post_id = get_the_ID();
                ?>
               <li class="clearfix">	
                    <div class="img_thumbnail feature-item">
    				<?php				
                    echo '<a class="img_thumbnail" href="' . get_permalink() . '" title="' . the_title_attribute('echo=0') . '">';?>
    <?php if ( has_post_thumbnail()) {
    	$image = wp_get_attachment_image_src( get_post_thumbnail_id( $post_id ), 'small-feature' );?>
            <img src="<?php echo $image[0]; ?>" />
    <?php }else{echo '<img src="'.get_template_directory_uri().'/images/demo/small-feature.jpg'.'">';} ?>	
    				
                  </a>
                  <?php echo themeloy_post_type(); ?>
             </div>
                    <div class="list_desc">
                         <h4 class="list_title"><a class="post-title" href="<?php the_permalink(); ?>" rel="bookmark" title="<?php the_title_attribute(); ?>">
    					<?php the_title(); ?>
    					</a></h4>
                       <?php echo themeloy_post_meta(get_the_ID());?>
    							<?php 
    							    $post_review = get_post_custom_values('enable_review_themeloy_select', $post_id); 
    								$post_review = ($post_review[0] != '') ? $post_review[0] : of_get_option('enable_all_review');
    								$total_review = absint(themeloy_get_total_review($post_id));
    							    if($post_review == '1'){
    							   ?>
    <div class="ratings">
    <div class="rating-box">
    <div class="rating" style="width:<?php echo themeloy_get_total_review(get_the_ID()); ?>%"></div>
    </div>
    </div>
     <?php }?> 
                    
                    </div>
    
                </li>
                <?php
            }
    
            wp_reset_query();
    
            echo "</ul>\n";
    		echo "</div>\n";
            echo $after_widget;
        }
    
    	
    	function update( $new_instance, $old_instance ) {
    		$instance = $old_instance;
    		$instance['title'] = strip_tags($new_instance['title']);
            $instance['cats'] = $new_instance['cats'];
    		$instance['number'] = absint($new_instance['number']);
    		 
            return $instance;
    	}
    
    	
    	function form( $instance ) {
    		$title = isset($instance['title']) ? esc_attr($instance['title']) : 'Recent Posts';
    		$number = isset($instance['number']) ? absint($instance['number']) : 5;
    		
    ?>
            <p><label for="<?php echo $this->get_field_id('title'); ?>"><?php _e('Title:', 'tl_back'); ?></label>
            <input class="widefat" id="<?php echo $this->get_field_id('title'); ?>" name="<?php echo $this->get_field_name('title'); ?>" type="text" value="<?php echo $title; ?>" /></p>
                            
            <p><label for="<?php echo $this->get_field_id('number'); ?>"><?php _e('Number of posts to show:', 'tl_back'); ?></label>
            <input id="<?php echo $this->get_field_id('number'); ?>" name="<?php echo $this->get_field_name('number'); ?>" type="text" value="<?php echo $number; ?>" size="3" /></p>
            
             <p>
                <label for="<?php echo $this->get_field_id('cats'); ?>"><?php _e('Select categories to include in the recent posts list:', 'tl_back');?> 
                
                    <?php
                       $categories=  get_categories('hide_empty=0');
                         echo "<br/>";
                         foreach ($categories as $cat) {
                        $option = '<input type="checkbox" id="' . $this->get_field_id('cats') . '[]" name="' . $this->get_field_name('cats') . '[]"';
                  
    			        if (isset($instance['cats'])) {
                            foreach ($instance['cats'] as $cats) {
                                if ($cats == $cat->term_id) {
                                    $option = $option . ' checked="checked"';
                                }
                            }
                        }
    			  
                        $option .= ' value="' . $cat->term_id . '" />';
                        $option .= '&nbsp;';
                        $option .= $cat->cat_name;
                        $option .= '<br />';
                        echo $option;
                    }
                        
                        ?>
                </label>
            </p>
            
    <?php
    	}
    }
    ?>
    
    • This reply was modified 4 years, 1 month ago by antenaro.
    Thread Starter antenaro

    (@antenaro)

    <?php
    add_action( 'widgets_init', 'themeloy_rec_register_widgets' );
    
    function themeloy_rec_register_widgets() {
    	register_widget( 'themeloy_rec_posts_widget' );
    }
    
    class themeloy_rec_posts_widget extends WP_Widget {
    
    			
    	function __construct() {
        	$widget_ops = array(
    			'classname'   => 'post_list_widget', 
    			'description' => __('Display a list of recent post entries from choosing categories.', 'tl_back')
    		);
        	parent::__construct('rec-recent-posts', __('Themeloy: Recently Posts', 'tl_back'), $widget_ops);
    	}
    
    	function widget($args, $instance) {
            extract($args);
            $title = apply_filters('widget_title', empty($instance['title']) ? 'Recently Articles' : $instance['title'], $instance, $this->id_base);
            if (!$number = absint($instance['number']))
                $number = 6;
            if (!$cats = $instance["cats"])
                $cats = '';
    
            $post_cat_args = array(
                'showposts' => $number,
                'category__in' => $cats,
            );
    
            $post_cat_widget = null;
            $post_cat_widget = new WP_Query($post_cat_args);
    
            echo $before_widget;
    
            echo $before_title;
            echo $instance["title"];
            echo $after_title;
    
            // Post list in widget
    		echo '<div class="widget_container">';
            echo '<ul class="post_list">';
    
            while ($post_cat_widget->have_posts()) {
                $post_cat_widget->the_post();
    			$post_id = get_the_ID();
                ?>
               <li class="clearfix">	
                    <div class="img_thumbnail feature-item">
    				<?php				
                    echo '<a class="img_thumbnail" href="' . get_permalink() . '" title="' . the_title_attribute('echo=0') . '">';?>
    <?php if ( has_post_thumbnail()) {
    	$image = wp_get_attachment_image_src( get_post_thumbnail_id( $post_id ), 'small-feature' );?>
            <img src="<?php echo $image[0]; ?>" />
    <?php }else{echo '<img src="'.get_template_directory_uri().'/images/demo/small-feature.jpg'.'">';} ?>	
    				
                  </a>
                  <?php echo themeloy_post_type(); ?>
             </div>
                    <div class="list_desc">
                         <h4 class="list_title"><a class="post-title" href="<?php the_permalink(); ?>" rel="bookmark" title="<?php the_title_attribute(); ?>">
    					<?php the_title(); ?>
    					</a></h4>
                       <?php echo themeloy_post_meta(get_the_ID());?>
    							<?php 
    							    $post_review = get_post_custom_values('enable_review_themeloy_select', $post_id); 
    								$post_review = ($post_review[0] != '') ? $post_review[0] : of_get_option('enable_all_review');
    								$total_review = absint(themeloy_get_total_review($post_id));
    							    if($post_review == '1'){
    							   ?>
    <div class="ratings">
    <div class="rating-box">
    <div class="rating" style="width:<?php echo themeloy_get_total_review(get_the_ID()); ?>%"></div>
    </div>
    </div>
     <?php }?> 
                    
                    </div>
    
                </li>
                <?php
            }
    
            wp_reset_query();
    
            echo "</ul>\n";
    		echo "</div>\n";
            echo $after_widget;
        }
    
    	
    	function update( $new_instance, $old_instance ) {
    		$instance = $old_instance;
    		$instance['title'] = strip_tags($new_instance['title']);
            $instance['cats'] = $new_instance['cats'];
    		$instance['number'] = absint($new_instance['number']);
    		 
            return $instance;
    	}
    
    	
    	function form( $instance ) {
    		$title = isset($instance['title']) ? esc_attr($instance['title']) : 'Recent Posts';
    		$number = isset($instance['number']) ? absint($instance['number']) : 5;
    		
    ?>
            <p><label for="<?php echo $this->get_field_id('title'); ?>"><?php _e('Title:', 'tl_back'); ?></label>
            <input class="widefat" id="<?php echo $this->get_field_id('title'); ?>" name="<?php echo $this->get_field_name('title'); ?>" type="text" value="<?php echo $title; ?>" /></p>
                            
            <p><label for="<?php echo $this->get_field_id('number'); ?>"><?php _e('Number of posts to show:', 'tl_back'); ?></label>
            <input id="<?php echo $this->get_field_id('number'); ?>" name="<?php echo $this->get_field_name('number'); ?>" type="text" value="<?php echo $number; ?>" size="3" /></p>
            
             <p>
                <label for="<?php echo $this->get_field_id('cats'); ?>"><?php _e('Select categories to include in the recent posts list:', 'tl_back');?> 
                
                    <?php
                       $categories=  get_categories('hide_empty=0');
                         echo "<br/>";
                         foreach ($categories as $cat) {
                        $option = '<input type="checkbox" id="' . $this->get_field_id('cats') . '[]" name="' . $this->get_field_name('cats') . '[]"';
                  
    			        if (isset($instance['cats'])) {
                            foreach ($instance['cats'] as $cats) {
                                if ($cats == $cat->term_id) {
                                    $option = $option . ' checked="checked"';
                                }
                            }
                        }
    			  
                        $option .= ' value="' . $cat->term_id . '" />';
                        $option .= '&nbsp;';
                        $option .= $cat->cat_name;
                        $option .= '<br />';
                        echo $option;
                    }
                        
                        ?>
                </label>
            </p>
            
    <?php
    	}
    }
    ?>
    

    By other attribute maybe you mean alt attribute.

    You can just add it to the img tags like on these lines:

    
    <img src="<?php echo $image[0]; ?>" alt="Image description" />
    <?php }else{echo '<img src="'.get_template_directory_uri().'/images/demo/small-feature.jpg'.'" alt="Image description" />';} ?>
    

    However, if you wanted to tidy that up and simplify it a little I think something like this might work:

    
    <?php
    if ( has_post_thumbnail() ) {
    	the_post_thumbnail();
    } else {
    	?>
    	<img src="<?php get_template_directory_uri(); ?>/images/demo/small-feature.jpg" alt="Image alt text"/>
    	<?php
    }
    ?>
    
    • This reply was modified 4 years, 1 month ago by ryvix.

    Also it would have been great of you to link to your other post here: https://wordpress.stackexchange.com/questions/360692/i-want-to-add-the-alt-attribute-to-all-the-photos

    Thread Starter antenaro

    (@antenaro)

    I introduced the new code and it worked.
    My page does not fail at all.
    I have some warnings, but I will research and remedy them.
    Thanks for your help, you are a great gentleman.

Viewing 6 replies - 1 through 6 (of 6 total)
  • The topic ‘I have a problem with the other attribute’ is closed to new replies.