Здравствуйте! Помогите решить проблему т…

Здравствуйте! Помогите решить проблему такого характера:
Мне нужно установить одну ссылку чтобы она показывалась только в определенной и никакой другой категории.
Спасибо!

31 Kомментарий

  1. 1. Можно полпробовать внедрить в шаблон примерно такую конструкцию:

    < ?php
    $id = array(1,2,55); # Пишем ID категорий, в которых нужно показывать код
    if ( have_posts() ) { the_post(); rewind_posts(); }
    if ( in_category($id)) { код, который нужно выводить только в определенных категориях
    } else {
    код, который нужно выводить во всех остальных категориях
    }
    ?>
    

    2. Так же можно воспользоваться плагином Optional Content: https://n-wp.ru/4251

    Этот плагин позволяет создавать содержимое, которое будет выводиться при определенных условиях.

    • 1.Плагин работает только в статьях , а мне надо только в категории (рубрике)
      2. В какой файл и в какое место вставляется код:

      просто я не спец уж такой и надо бы все понять и разобраться во всем…, да и как правильно его оформить?!
      Спасибо!

  2. Что-то я вас не пойму. archive.php – это файл архивов. Архивов по категориям, по датам, по авторам, по тегам. Например, у меня есть тема, в которой в этом файле прописано следующее:

    < ?php if (is_category()) { ?>
    

    < ?php printf(__('Записи категории ‘ %s ’', 'neutral'), single_cat_title('', false)); ?>

    Это условие, которое проверяет, отфильтрованы ли записи только по категории. Если да, то выводится название категории. Почему бы под описанием не вывести и вашу ссылку, указав дополнительное условие проверки категории? Получиться должно примерно так:

    < ?php if (is_category()) { ?>
    

    < ?php printf(__('Записи категории ‘ %s ’', ''), single_cat_title('', false)); ?>

    < ?php if ( in_category(7) ) : ?> Всероссийская дистанционная олимпиада < ?php endif; ?>
    • Кстати, как у вас в шаблоне архивов написано, я не знаю, но конструкция должна быть похожая. Посмотрите, найдите вывод постов из категории, вставьте в этот блок свою ссылку с условием.

      • Как найти вывод постов? Я не такой опытный и не программист и языков никаких не знаю просто чисто методом тыка и небольшого опыта действую…
        Если сможете помогите, но не в примерами своими(если можно) а на конкретно моем сайте…
        И как уже говорил мне надо продажную ссылку установить на конкретную старницу сайта, а это в моем случае корневая страница каталога под названием “raznoe” и не на каких других страницах мне ссылка не нужна….
        Наверное теперь я понятнее написал? Прошу помочь! У меня например по аналогии установлена ссылка только на главной странице, но она-то одна, а каталогов (рубрик много)….
        Вот и надо-то только чтобы ссылка выводилась только по ID каталога, а не во всех….
        Архивы вообще мне не нужны…
        Спасибо и извинения за мою тупость и назойливость, просто очень надо!!!

          • Тема оформления: Тема и плагин к ней
            Хотя мне в архивве не надо, а надо только на странице Разное и только на этой странице
            Вот код afqkf category.php сейчас там стоит Вми предложенный код, но показывается ссылка во всех категориях, а надо только в одной

            < ?php get_header(); ?>
            < ?php $post = $posts[0]; // Hack. Set $post so that the_date() works. ?>
            < ?php if (is_category()) { ?>
            

            Содержимое рубрики "< ?php echo single_cat_title(); ?>"

            < ?php } ?> < ?php if (get_categories('child_of='.$cat.'&hide_empty=0')) { ?>

            Подрубрики:

              < ?php wp_list_categories('show_count=1&child_of='.$cat.'&hide_empty=0&title_li='); ?>
            < ?php } else { ?> < ?php $ID = $wp_query->posts[0]->ID; $postcat = get_the_category($ID); $cat = $postcat[0]->cat_ID; $parent = get_category($cat); ?> < ?php if ($parent->parent) { ?>

            Соседние рубрики:

              < ?php error_reporting(0); wp_list_categories ('show_count=1&child_of='.$parent->parent.'&exclude='.$cat.'&hide_empty=0&title_li='); ?>
            < ?php } ?> < ?php } ?> < ?php $order = "&orderby=cost&order=DESC"; $s2 = ' selected="selected"'; if ($_POST['select'] == 'title') { $order = "&orderby=title&order=ASC"; $s1 = ' selected="selected"'; $s2 = ''; } if ($_POST['select'] == 'newest') { $order = "&orderby=cost&order=DESC"; $s2 = ' selected="selected"'; } if ($_POST['select'] == 'oldest') { $order = "&orderby=cost&order=ASC"; $s3 = ' selected="selected"'; $s2 = ''; } ?>
            Сортировка:
            < ?php if (have_posts()) : ?> < ?php $posts = query_posts($query_string . $order); ?> < ?php while (have_posts()) : the_post(); ?>

            < ?php the_title(); ?>

            < ?php the_excerpt(); ?>
            < ?php endwhile; ?> < ?php else : ?>

            В данной рубрике нет статей.

            < ?php endif; ?> < ?php get_sidebar(); ?> < ?php get_footer(); ?> < ?php $id = array(7); # Пишем ID категорий, в которых нужно показывать код if ( in_category($id) ) : ?> Всероссийская дистанционная олимпиада < ?php endif; ?>
            archve.php
            
            < ?php get_header(); ?>
            < ?php if (have_posts()) : ?>
            < ?php $post = $posts[0]; // Hack. Set $post so that the_date() works. ?>
            < ?php if (is_day()) { ?>
            

            Архив за < ?php the_time('j F , Y'); ?>

            < ?php } elseif (is_month()) { ?>

            Архив за < ?php the_time('F Y'); ?>

            < ?php } elseif (is_year()) { ?>

            Архив за < ?php the_time('Y'); ?>

            < ?php } elseif (is_author()) { ?>

            Архив автора

            < ?php } elseif (isset($_GET['paged']) && !empty($_GET['paged'])) { ?>

            Архив

            < ?php } ?> < ?php while (have_posts()) : the_post(); ?>

            < ?php the_title(); ?>

            < ?php the_excerpt(); ?>
            < ?php endwhile; ?> < ?php else : ?>

            Не найдено

            Извините, по вашему запросу ничего не найдено.

            < ?php endif; ?> < ?php get_sidebar(); ?> < ?php get_footer(); ?>
            • Вы определитесь, пожалуйста, где вам нужно вывести ссылку?
              Сначала вы писали, что вам нужно выводить ссылку только в определенной категории. Теперьо пишете, что вам нужно выводить ссылку только на странице Разное. Где ссылку-то эту нужно выводить?

              • Только на странице категории “разное”.
                В общем в каждой категории должны быть разные ссылки не не дублироваться в категориях…
                Вроде так и писал..
                Вот например( не беру главную страницу):
                1.Категория-1 http://www.syte.com
                2.Категория-2 http://www.site-2.com
                и т.д. но каждая ссылка должна показываться только в своей категории, а не во всех сразу…
                Извините, просто Вы плохо поняли меня, а я не точно наверное пояснил…

  3. Условие для вывода ссылки в определенной категории выглядит так:

    < ?php if ( in_category('2') ) { echo ('тут должна быть ссылка'); } ?>

    2 – это ID нужной категории
    Это условие можно вставлять в single.php и archive.php.

    • Уважаемый тиариус, подскажите, а какой код ( только полностью, а не просто кусочек, а то я не понимаю, бабаб совсем) нужно вставить в archive.php чтобы вставить ссылку в архив определенной даты?
      Спасибо заранее…

        • Что-то не выходит по правильному не сортирует… если ставлю к примеру дату архива вот так

          < ?php if (is_date(25-06-2010) ) : ?>
          Всероссийская дистанционная олимпиада
          < ?php endif; ?>

          или любую другую. то показывается не только в установленной в коде дата, но и во всех архивах отображается ссылка…
          Я просто туп по php, но понимаю, что какое-то условие еще наверное должно быть… просто я не знаю как и что написать…

        • Функция is_date() не имеет параметров, поэтому срабатывает для любой даты. Можно получить запрошенную дату из параметров $wp_query:

          < ?php
          global $wp_query;
          $date = !empty($wp_query->query['day']) ? "{$wp_query->query['day']}-{$wp_query->query['monthnum']}-{$wp_query->query['year']}" : '';
          ?>
          < ?php if ( $date == '25-06-2010' ) : ?>
          Всероссийская дистанционная олимпиада
          < ?php endif; ?>
          
          • А как получить существующую дату, то есть так которая в день просмотра страницы, чтобы дата всегда соответствовала системной, ну например сегодня показывается на страница, а потом добавился еще контент в архив и страница сменилась и чтобы опять показывался на странице архива или категории за дату не когда публиковалась, а на сегодняшний день просмотра главной станицы категории или архива?

            Может не понятно объясняю, но просто по другому не получается.
            Заранее спасибо!

  4. Спасибо! Попробовал работает, но вот еще как такое сделать чтобы еще страница чтобы менялась?
    т.к у меня много материалов за один день и получается постранично, как реализовать… Ты гений я знаю что сможешь, а я просто чайник совсем еще…
    типа :
    http://site.ru/data(rghbvthe там 2010/06/06/page/2/
    или
    http://seonowik.ru/2010/09/page/3/

    • Я предположил, что речь идёт об архиве за день. Универсальный вариант может выглядеть так:

      < ?php
      global $wp_query;
      $date = '';
      if ( !empty($wp_query->query['day']) )
      $date .= $wp_query->query['day'] . '-';
      if ( !empty($wp_query->query['monthnum']) )
      $date .= $wp_query->query['monthnum'] . '-';
      if ( !empty($wp_query->query['year']) )
      $date .= $wp_query->query['year'];
      ?>
      < ?php if ( $date == '25-06-2010' ) : ?>
      Всероссийская дистанционная олимпиада
      < ?php endif; ?>
      

      Проверил с архивами за день, месяц и год. Указывать дату для сравнения можно в одном из следующих форматов: 25-06-2010, 06-2010, 2010.

Оставить комментарий

Ваш электронный адрес не будет опубликован.


*