Описание для категорий и меток

👍 Научим бесплатно правильно создавать сайты на WordPress. Подробнее →

Прошу помочь найти плагин.

Суть такова. Вот перешёл пользователь в нужную ему категорию или метку. Нужно, чтобы над списком статей отображалась нужная мне информация, хочу прописать описание. Идеально, если бы можно было ещё задать title, description и прочие теги. Думаю ясно, что хочу это сделать для улучшения SEO у сайта.

И вроде как что то похожее проскакивало на данном сайте (плагин), вот только найти не могу. Помогите пожалуйста.

Ах да. Очень важно, чтобы описание категории/метки было только на первой её странице, на остальных ничего не было. А то будут дубли, нехорошо.

Знаю, что можно так сделать, покапавшись в коде, но так не слишком удобно будет, да и не знаю некоторых мелочей, чтобы так сделать.

Создай свой первый сайт на WordPress

Sk8er
Оцените автора
Добавить комментарий

  1. tiaurus

    Значит задача у вас такова:
    1. Определить номер страницы в архиве постов определенной категории
    2. Если это первая страница, то вывести описание категории

    Решается эта задача так.

    Создается функция, определяющая текущий номер страницы архива. Для этого нужно добавить в functions.php

    function p2_page_number() {
    	echo p2_get_page_number();
    }
    	function p2_get_page_number() {
    		global $paged;
    		return apply_filters( 'p2_get_page_number', $paged );
    	}

    После этого выводится описание категории только на первой странице. Предположим, что за создание архива постов определенной категории отвечает файл index.php. Тогда в него нужно вставить

    <?php if(is_category()) : ?>
        <?php $this_category = get_category($cat);?>
        <div>
        	<div>
        		Публикации в категории <?php single_cat_title(); ?>
        	</div>
        	<div>
        		Страница 
        			<?php if ( p2_get_page_number() > 1 ) : ?><!--если это не первая страница, то выводится только ее номер-->
        				<?php printf( __( '%s', 'p1280' ), p2_get_page_number() ); ?>
        			<?php else : ?><!--если это первая страница, то выводится ее номер и описание категории-->
        				1
                        <div>
                            <?php echo category_description( $category ); ?>
                        </div>
        			<?php endif; ?>
        	</div>	
        </div>
    <?php endif; ?>

    Как-то так, и никаких плагинов.

    Ответить
    1. mupic

      Здравствуй, ваш код мне очень пригодился, но как сделать так что бы номер страницы не выводился?
      Я убираю

      <?php if ( p2_get_page_number() > 1 ) : ?>

      и все перестает работать.

      Ответить
  2. Sk8er автор

    Немного не понял как именно быть. И за архивы у меня скорее отвечает archive.php. Вот он:

    <?php get_header(); ?>
    <div class="outer" id="contentwrap">
    	<!--noindex--><div class="postcont" style="margin: 0 0 8px;width: 928px;text-align: center;padding: 5px 0 0;">
    		<script type="text/javascript"><!--
    		google_ad_client = "ca-pub-8747125121336190";
    		google_ad_slot = "0929922088";
    		google_ad_width = 728;
    		google_ad_height = 90;
    		//-->
    		</script>
    		<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
    	</div><!--/noindex-->
    	<?php get_sidebar(); ?>
    	<div class="postcont">
    		<div id="content">	
    
    		<?php if (have_posts()) : ?>
    
    		<div class="breadcrumbs" style="margin:5px 0 0"><img src="http://ubuntovod.ru/wp-content/themes/TinyWeb/images/folder.png" /><?php if (function_exists('dimox_breadcrumbs')) dimox_breadcrumbs(); ?></div>
    
    		<?php while (have_posts()) : the_post(); ?>
    		<div <?php post_class() ?>>
    			<h2 class="title" style="margin: 0"><a 0="" 1="the_permalink()" 2="?" rel="nofollow">" rel="bookmark" title="<?php the_title(); ?>"><?php the_title(); ?></a></h2>
    			<div class="entry">
    				<div class="alignleft post_thumbnail"><img src="<?php echo kama_thumb_src ('w=200 &h=160 &q=90'); ?>" alt="<?php the_title(); ?>" title="<?php the_title(); ?>" /></div>
    				<?php the_excerpt(); ?>
    			</div>
    			<div class="previewfooter">
    			<div class="alignleft">
    	<img src="http://ubuntovod.ru/wp-content/themes/TinyWeb/images/date.png" /><?php the_time('j F, Y') ?>
    	<?php if (function_exists('avtor')) avtor(); ?>
    	<img src="http://ubuntovod.ru/wp-content/themes/TinyWeb/images/folder.png" /><?php the_category(', ') ?>
    			</div>
    				<div class="alignright"><!--noindex--> <a class="readmore" 1="the_permalink()" 2="?" rel="nofollow">" rel="bookmark" title="<?php the_title_attribute(); ?>">Читать далее »</a><!--/noindex--></div>
    			</div>
    		</div>
    
    		<?php endwhile; ?>
    		
    		<div class="navigation"><?php if(function_exists('wp_pagenavi')) { wp_pagenavi(); } ?></div>
    	<?php else :
    
    		if ( is_category() ) {
    			printf("<h1 class='title'>Упс... Извините, категория пустая</h1>", single_cat_title('',false));
    		} else if ( is_date() ) {
    			echo("<h1 class='title'>Упс... Извините, с данной датой нет новостей</h1>");
    		} else if ( is_author() ) {
    			$userdata = get_userdatabylogin(get_query_var('author_name'));
    			printf("<h1 class='title'>Упс... У данного автора нет новостей</h1>", $userdata->display_name);
    		} else {
    			echo("<h1 class='title'>Упс... Ничего не найдено...</h1>");
    		}
    		echo("<p style="margin: 10px 0pt;">Возможно страница была удалена, либо изменился её адрес.</p><p style="margin: 10px 0pt;">Воспользуйтесь поиском (в левой колонке).</p><p style="margin: 10px 0pt;">Последние записи на сайте:</p>
    <ul>");
    		include_once(ABSPATH . WPINC . '/feed.php');
    		$rss = fetch_feed('http://feeds.feedburner.com/ubuntovod');
    		if (!is_wp_error( $rss ) ) : 
    		$maxitems = $rss->get_item_quantity(10);
    		$rss_items = $rss->get_items(0, $maxitems);
    		endif;
    		if ($maxitems == 0) echo '';
    		else
    		foreach ( $rss_items as $item ) : ?>
    		<li><a 0="" 1="echo" 2="esc_url(" 3="$item-" rel="nofollow">get_permalink() ); ?>" title="<?php echo esc_html( $item->get_title() ); ?>"> <?php echo esc_html( $item->get_title() ); ?></a></li>
    		<?php endforeach;
    		echo("</ul>");
    
    	endif;
    ?>
    
    		</div>
    		</div>
    	</div>
    <?php get_footer(); ?>

    Как и куда именно всё вставить? :)

    Ответить
  3. ig0r74

    Вставляете в 20 строку, тогда у вас описание будет сразу под «хлебными крошками».

    Ответить
  4. antonator

    Попутный вопрос по «category_description». Почему-то в поле «Описание» раздела админки Вордпресса «Изменить метку», нельзя задать параметры ссылке. В само описание я ссылку вставить могу. А вот, например, задать ей класс — нет. По нажатии «Обновить», остаётся лишь сама ссылка, без параметров. Сама функция «category_description» расписана в файле ««category-template.php». В PHP не разбираюсь, прошу помочь.

    Ответить