Aangemaakte reacties

2 reacties aan het bekijken - 1 tot 2 (van in totaal 2)
  • De plugin lijkt te werken.
    Je kan nog niet kiezen waarop je wilt sorteren. Dat is nu fixed op rating.
    Hier is de code. Zal kijken waar ik deze plugin kan uploaden voor andere liefhebbers.
    WHOOP-WHOOP! Created my first usable WordPress plugin!

    <?php
    /*
    Plugin Name: Links by rating Widget
    Description: Links ordered by rating in Widget
    Author: Jan-Willem van Veelen
    Version: 1.0
    Beta tester: Michael Hastrich
    */
    
      class WP_Widget_Links_By_Rating extends WP_Widget {
    
    	function WP_Widget_Links_By_Rating() {
    		$widget_ops = array( 'classname' => 'widget_Links_By_Rating', 'description' => __( "Show links in order of rating" ) );
    		$this->WP_Widget('linksByRating', __('Links By Rating 1.0'), $widget_ops);
    	}
    
    	function widget( $args, $instance ) {
    		extract($args, EXTR_SKIP);
    
    		$show_description = isset($instance['description']) ? $instance['description'] : false;
    		$show_name = isset($instance['name']) ? $instance['name'] : false;
    		$show_rating = isset($instance['rating']) ? $instance['rating'] : false;
    		$show_images = isset($instance['images']) ? $instance['images'] : true;
    		$category = isset($instance['category']) ? $instance['category'] : false;
    
    		if ( is_admin() && !$category ) {
    			// Display All Links widget as such in the widgets screen
    			echo $before_widget . $before_title. __('All Links') . $after_title . $after_widget;
    			return;
    		}
    		wp_list_bookmarks(array(
    			'title_before' => $before_title, 'title_after' => $after_title,
    			'category_before' => $before_widget, 'category_after' => $after_widget,
    			'show_images' => $show_images, 'show_description' => $show_description,
    			'show_name' => $show_name, 'show_rating' => $show_rating,
    			'category' => $category, 'class' => 'linkcat widget',
    			'orderby' => 'rating'
    		));
    	}
    
    	function update( $new_instance, $old_instance ) {
    		$new_instance = (array) $new_instance;
    		$instance = array( 'images' => 0, 'name' => 0, 'description' => 0, 'rating' => 0);
    		foreach ( $instance as $field => $val ) {
    			if ( isset($new_instance[$field]) )
    				$instance[$field] = 1;
    		}
    		$instance['category'] = intval($new_instance['category']);
    
    		return $instance;
    	}
    
    	function form( $instance ) {
    
    		//Defaults
    		$instance = wp_parse_args( (array) $instance, array( 'images' => false, 'name' => true, 'description' => false, 'rating' => false, 'category' => false ) );
    		$link_cats = get_terms( 'link_category');
    ?>
    		<p>
    		<label for="<?php echo $this->get_field_id('category'); ?>" class="screen-reader-text"><?php _e('Select Link Category'); ?></label>
    		<select class="widefat" id="<?php echo $this->get_field_id('category'); ?>" name="<?php echo $this->get_field_name('category'); ?>">
    		<option value=""><?php _e('All Links'); ?></option>
    		<?php
    		foreach ( $link_cats as $link_cat ) {
    			echo '<option value="' . intval($link_cat->term_id) . '"'
    				. ( $link_cat->term_id == $instance['category'] ? ' selected="selected"' : '' )
    				. '>' . $link_cat->name . "</option>\n";
    		}
    		?>
    		</select></p>
    		<p>
    		<input class="checkbox" type="checkbox" <?php checked($instance['images'], true) ?> id="<?php echo $this->get_field_id('images'); ?>" name="<?php echo $this->get_field_name('images'); ?>" />
    		<label for="<?php echo $this->get_field_id('images'); ?>"><?php _e('Show Link Image'); ?></label><br />
    		<input class="checkbox" type="checkbox" <?php checked($instance['name'], true) ?> id="<?php echo $this->get_field_id('name'); ?>" name="<?php echo $this->get_field_name('name'); ?>" />
    		<label for="<?php echo $this->get_field_id('name'); ?>"><?php _e('Show Link Name'); ?></label><br />
    		<input class="checkbox" type="checkbox" <?php checked($instance['description'], true) ?> id="<?php echo $this->get_field_id('description'); ?>" name="<?php echo $this->get_field_name('description'); ?>" />
    		<label for="<?php echo $this->get_field_id('description'); ?>"><?php _e('Show Link Description'); ?></label><br />
    		<input class="checkbox" type="checkbox" <?php checked($instance['rating'], true) ?> id="<?php echo $this->get_field_id('rating'); ?>" name="<?php echo $this->get_field_name('rating'); ?>" />
    		<label for="<?php echo $this->get_field_id('rating'); ?>"><?php _e('Show Link Rating'); ?></label>
    		</p>
    <?php
    	}
    }
    
    // Register the widget.
    add_action('widgets_init', create_function('', 'return register_widget("WP_Widget_Links_By_Rating");'));
    ?>

    Ik ben een plugin aan het schrijven die deze widget toevoegt.
    Ik zal kijken of de links niet alleen op ‘rating’ gesorteerd kan worden in de Widget

2 reacties aan het bekijken - 1 tot 2 (van in totaal 2)