Informacje o nowych artykułach oraz akcjach edukacyjnych prosto na Twojej skrzynce e-mail!

Widget w WordPressie z najpopularniejszymi postami bez użycia plugin’u

Zanim zabierzemy się za tworzenie tej części widgetu przypominam, że najpierw należy zmodyfikować odpowiednio szablon, tak aby w metadanych były zliczane odsłony danego artykułu. Instrukcja jak to zrobić znajduje się w moim poprzednim wpisie „Zliczanie liczby wyświetleń postów bez użycia pluginu w WordPressie„.

Jeśli wszystko jest już przygotowane możemy przejść do kodu:

public function widget( $args, $instance ) {
	    $title = apply_filters('widget_title', $instance['title']);

	    if (empty($title))
	    {
	        $title = __('Najpopularniejsze posty', 'najpoularniejszePosty');
	    }

	    echo $args['before_widget'];

	    echo $args['before_title'] . esc_html($title) . $args['after_title'];

	    $arg = array(
	        'posts_per_page' => $instance['number'], //liczba postów do wyświetlenia
	        'meta_key' => 'post_views_count', //liczba odsłon
	        'orderby' => 'meta_value_num' //sortowanie
	    );

	    $popular_posts = get_posts($arg);
	    global $post;
	    ?>

            <?php
}

Powyżej ustawiliśmy domyślny tytuł widgetu w przypadku skasowania danych z odpowiedniego pola formularza personalizacyjnego, został również przygotowany nagłówek wyświetlający tytuł widgetu na stronie oraz w zmiennej $popular_posts zapisaliśmy najpopularniejsze posty posortowane według liczby odsłon.

W kolejnym kroku napiszemy pętlę foreach za pomocą której wyświetlimy nasze posty:

<div class="posts">
			<?php foreach($popular_posts as $post) : ?>
				<?php setup_postdata( $post ); ?>
				<div class="articles">
	                <article>
	                    <?php if ($instance['show_thumbnail'] == TRUE && has_post_thumbnail()): ?>
	                       	<div class="post-head">
	                        	<?php the_post_thumbnail('medium'); ?>
	                        </div>
	                    <?php endif; ?>
						<div>
		                    <h3 class="post-title"><a href="<?php the_permalink(); ?>">
		                    	<?php the_title(); ?></a>
			                    <?php if( $instance['show_count'] == TRUE ) : ?>
			                    	<span>
			                    	<?php
			                    	echo "Wyświetlenia: " . get_post_meta($post->ID, 'post_views_count', true);
			                    	?>
			                    	</span>
			                    	<?php
			                   	endif; ?>
		                   	</h3>
		                    <?php if( $instance['show_excerpt'] == TRUE ) : ?>
		                        <?php echo get_the_excerpt(); ?>
		                    <?php endif; ?>
	                    </div>
	                </article>
	            </div>
			<?php endforeach; ?>
</div>

Jak widać w kodzie zamieściliśmy również instrukcje warunkowe (IF) gdzie sprawdzamy opcje wyświetlania jakie zostały wybrane przez użytkownika i w zależności od wybranych ustawień decydujemy czy dany element ma zostać pokazany.

Oczywiście kod HTML można sobie sformatować według własnych preferencji.

Widget „Najpopularniejsze posty” jest już gotowy do użycia.

Strony: 1 2 3 4 5 6

Spodobało się?

Jeśli tak, to zarejestruj się do newslettera aby otrzymywać informacje nowych artykułach oraz akcjach edukacyjnych. Gwarantuję 100% satysfakcji i żadnego spamowania!

, , , , , , , ,

Dodaj komentarz

Odpowiedz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Pin It on Pinterest