Здравствуйте! Помогите решить проблему такого характера:
Мне нужно установить одну ссылку чтобы она показывалась только в определенной и никакой другой категории.
Спасибо!
Комментариев 31
блог о WordPress |
|
|
|
Здравствуйте! Помогите решить проблему такого характера:
Мне нужно установить одну ссылку чтобы она показывалась только в определенной и никакой другой категории.
Спасибо!
|
|
Следующий вопрос Кто -нибудь поможет решить проблему вывода продажных ссылок в различных категориях... |
Предыдущий вопрос Здравствуйте, у меня такая проблема, после того как я ввожу в Общих ... |
|
Следующий пост Кто -нибудь поможет решить проблему вывода продажных ссылок в различных категориях... |
|
Предыдущий пост Здравствуйте, у меня такая проблема, после того как я ввожу в Общих ... |
1. Можно полпробовать внедрить в шаблон примерно такую конструкцию:
2
3
4
5
6
7
8
$id = array(1,2,55); # Пишем ID категорий, в которых нужно показывать код
if ( have_posts() ) { the_post(); rewind_posts(); }
if ( in_category($id)) { код, который нужно выводить только в определенных категориях
} else {
код, который нужно выводить во всех остальных категориях
}
?>
2. Так же можно воспользоваться плагином Optional Content: http://n-wp.ru/4251
1.Плагин работает только в статьях , а мне надо только в категории (рубрике)
2. В какой файл и в какое место вставляется код:
просто я не спец уж такой и надо бы все понять и разобраться во всем…, да и как правильно его оформить?!
Спасибо!
Вставил вышеприведенную конструкцию php в конец файла index.php шаблона сайта в раздел футера и вообще сайт не грузится..
Где ошибка и ка правильно его сделать?
Вот так сделал:
2
3
4
5
6
7
8
9
<?php
$id = array(7); # Пишем ID категорий, в которых нужно показывать код
if ( have_posts() ) { the_post(); rewind_posts(); }
if ( in_category($id)) { <a href='http://www.farosta.ru/'>Всероссийская дистанционная олимпиада</a>
} else {
}
?>
Попробуйте так:
2
3
<a href='http://www.farosta.ru/'>Всероссийская дистанционная олимпиада</a>
<?php endif; ?>
Вставил код и добавил даже пропущенный тег <a, старницы открываются, но ссылка не показывается…
Сайт: Цитата
Но если вставляю в файл сategoty.php отображает ссылку, но во всех категориях и на главной странице, а это равносильно стандартному виджету "ссылки"…
Необходимо чтобы только в конкретной категории появлялась ссылка… Например ID раздела нужного и только в нем!
Вставляйте в archive.php
Если вставляю archive.php nто показывается только в архиве, а надо чтобы ссылка отображалась только в категории "raznoe"
Что-то я вас не пойму. archive.php – это файл архивов. Архивов по категориям, по датам, по авторам, по тегам. Например, у меня есть тема, в которой в этом файле прописано следующее:
2
<p><?php printf(__('Записи категории ‘<span id="keyword"> %s </span>’', 'neutral'), single_cat_title('', false)); ?></p>
Это условие, которое проверяет, отфильтрованы ли записи только по категории. Если да, то выводится название категории. Почему бы под описанием не вывести и вашу ссылку, указав дополнительное условие проверки категории? Получиться должно примерно так:
2
3
4
5
6
<p><?php printf(__('Записи категории ‘<span id="keyword"> %s </span>’', ''), single_cat_title('', false)); ?></p>
<?php if ( in_category(7) ) : ?>
<a href='http://www.farosta.ru/'>Всероссийская дистанционная олимпиада</a>
<?php endif; ?>
Кстати, как у вас в шаблоне архивов написано, я не знаю, но конструкция должна быть похожая. Посмотрите, найдите вывод постов из категории, вставьте в этот блок свою ссылку с условием.
Как найти вывод постов? Я не такой опытный и не программист и языков никаких не знаю просто чисто методом тыка и небольшого опыта действую…
Если сможете помогите, но не в примерами своими(если можно) а на конкретно моем сайте…
И как уже говорил мне надо продажную ссылку установить на конкретную старницу сайта, а это в моем случае корневая страница каталога под названием "raznoe" и не на каких других страницах мне ссылка не нужна….
Наверное теперь я понятнее написал? Прошу помочь! У меня например по аналогии установлена ссылка только на главной странице, но она-то одна, а каталогов (рубрик много)….
Вот и надо-то только чтобы ссылка выводилась только по ID каталога, а не во всех….
Архивы вообще мне не нужны…
Спасибо и извинения за мою тупость и назойливость, просто очень надо!!!
Выложите файл archive.php или скажите, откуда скачать тему оформления вашего блога.
Тема оформления: Тема и плагин к ней
Хотя мне в архивве не надо, а надо только на странице Разное и только на этой странице
Вот код afqkf category.php сейчас там стоит Вми предложенный код, но показывается ссылка во всех категориях, а надо только в одной
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
<?php $post = $posts[0]; // Hack. Set $post so that the_date() works. ?>
<?php if (is_category()) { ?>
<h2 class="pagetitle">Содержимое рубрики "<?php echo single_cat_title(); ?>"</h2>
<?php } ?>
<div class="nav">
<a href="<?php bloginfo('url'); ?>/">Главная</a> » <?php echo(get_category_parents($cat, TRUE, ' » ')); ?>
</div>
<?php if (get_categories('child_of='.$cat.'&hide_empty=0')) { ?>
<h3>Подрубрики:</h3>
<ul class="child-categories">
<?php wp_list_categories('show_count=1&child_of='.$cat.'&hide_empty=0&title_li='); ?>
</ul>
<?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) { ?>
<h3>Соседние рубрики:</h3>
<ul class="child-categories">
<?php error_reporting(0); wp_list_categories ('show_count=1&child_of='.$parent->parent.'&exclude='.$cat.'&hide_empty=0&title_li='); ?>
</ul>
<?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 = ''; }
?>
<form method="post" id="order">
Сортировка:
<select name="select" onchange='this.form.submit()'>
<option value="title"<?=$s1?>>По заголовку</option>
<option value="newest"<?=$s2?>>Самые новые</option>
<option value="oldest"<?=$s3?>>Самые старые</option>
</select>
</form>
<div class="line"></div>
<?php if (have_posts()) : ?>
<?php $posts = query_posts($query_string . $order); ?>
<?php while (have_posts()) : the_post(); ?>
<div class="post">
<h3><a href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a></h3>
<div class="postmetadata"><?php the_time('d.m.Y') ?> | Автор: <a href="<?php bloginfo('url'); ?>/author/<?php the_author_login(); ?>/"><?php the_author() ?></a> | Рубрика: <?php the_category(', ') ?> | <?php comments_popup_link('Оставить комментарий', 'Комментариев: 1', 'Комментариев: %'); ?></div>
<div class="entry">
<?php the_excerpt(); ?>
</div>
</div>
<?php endwhile; ?>
<div class="navigation">
<?php if(function_exists('wp_pagenavi')) { wp_pagenavi(); } else { ?>
<div class="alignleft"><?php next_posts_link('« Раньше') ?></div>
<div class="alignright"><?php previous_posts_link('Позже »') ?></div>
<?php } ?>
</div>
<?php else : ?>
<h3>В данной рубрике нет статей.</h3>
<?php endif; ?>
<?php get_sidebar(); ?>
<?php get_footer(); ?>
<?php
$id = array(7); # Пишем ID категорий, в которых нужно показывать код
if ( in_category($id) ) : ?>
<a href='http://www.farosta.ru/'>Всероссийская дистанционная олимпиада</a>
<?php endif; ?>[cc lang="php"]
archve.php
[cc lang="php"]<?php get_header(); ?>
<?php if (have_posts()) : ?>
<?php $post = $posts[0]; // Hack. Set $post so that the_date() works. ?>
<?php if (is_day()) { ?>
<h2 class="pagetitle">Архив за <?php the_time('j F , Y'); ?></h2>
<?php } elseif (is_month()) { ?>
<h2 class="pagetitle">Архив за <?php the_time('F Y'); ?></h2>
<?php } elseif (is_year()) { ?>
<h2 class="pagetitle">Архив за <?php the_time('Y'); ?></h2>
<?php } elseif (is_author()) { ?>
<h2 class="pagetitle">Архив автора</h2>
<?php } elseif (isset($_GET['paged']) && !empty($_GET['paged'])) { ?>
<h2 class="pagetitle">Архив</h2>
<?php } ?>
<?php while (have_posts()) : the_post(); ?>
<div class="post">
<h3><a href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a></h3>
<div class="postmetadata"><?php the_time('d.m.Y') ?> | Автор: <a href="<?php bloginfo('url'); ?>/author/<?php the_author_login(); ?>/"><?php the_author() ?></a> | Рубрика: <?php the_category(', ') ?> | <?php comments_popup_link('Оставить комментарий', 'Комментариев: 1', 'Комментариев: %'); ?></div>
<div class="entry">
<?php the_excerpt(); ?>
</div>
</div>
<?php endwhile; ?>
<div class="navigation">
<?php if(function_exists('wp_pagenavi')) { wp_pagenavi(); } else { ?>
<div class="alignleft"><?php next_posts_link('« Раньше') ?></div>
<div class="alignright"><?php previous_posts_link('Позже »') ?></div>
<?php } ?>
</div>
<?php else : ?>
<h2>Не найдено</h2>
<p>Извините, по вашему запросу ничего не найдено.</p>
<?php endif; ?>
<?php get_sidebar(); ?>
<?php get_footer(); ?>
Вы определитесь, пожалуйста, где вам нужно вывести ссылку?
Сначала вы писали, что вам нужно выводить ссылку только в определенной категории. Теперьо пишете, что вам нужно выводить ссылку только на странице Разное. Где ссылку-то эту нужно выводить?
Только на странице категории "разное".
В общем в каждой категории должны быть разные ссылки не не дублироваться в категориях…
Вроде так и писал..
Вот например( не беру главную страницу):
1.Категория-1 http://www.syte.com
2.Категория-2 http://www.site-2.com
и т.д. но каждая ссылка должна показываться только в своей категории, а не во всех сразу…
Извините, просто Вы плохо поняли меня, а я не точно наверное пояснил…
Условие для вывода ссылки в определенной категории выглядит так:
2 – это ID нужной категории
Это условие можно вставлять в single.php и archive.php.
Это почему-то не работает, а вот это :
2
3
<a href='http://www.farosta.ru/'>Всероссийская дистанционная олимпиада</a>
<?php endif; ?>
вставил и стало работать.
Уважаемый тиариус, подскажите, а какой код ( только полностью, а не просто кусочек, а то я не понимаю, бабаб совсем) нужно вставить в archive.php чтобы вставить ссылку в архив определенной даты?
Спасибо заранее…
В вашем случае это будет выглядеть наверное так:
2
3
<a href='http://www.farosta.ru/'>Всероссийская дистанционная олимпиада</a>
<?php endif; ?>
Подробнее: http://codex.wordpress.org/Conditional_Tags – начиная с пункта A Date Page.
Что-то не выходит по правильному не сортирует… если ставлю к примеру дату архива вот так
2
3
<a href='http://www.farosta.ru/'>Всероссийская дистанционная олимпиада</a>
<?php endif; ?>
или любую другую. то показывается не только в установленной в коде дата, но и во всех архивах отображается ссылка…
Я просто туп по php, но понимаю, что какое-то условие еще наверное должно быть… просто я не знаю как и что написать…
А какой у вас в блоге в настройках указан формат даты?
В блоге в настройках вот так стоит: Формат даты 14.10.2010
Функция is_date() не имеет параметров, поэтому срабатывает для любой даты. Можно получить запрошенную дату из параметров $wp_query:
2
3
4
5
6
7
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' ) : ?>
<a href='http://www.farosta.ru/'>Всероссийская дистанционная олимпиада</a>
<?php endif; ?>
А как получить существующую дату, то есть так которая в день просмотра страницы, чтобы дата всегда соответствовала системной, ну например сегодня показывается на страница, а потом добавился еще контент в архив и страница сменилась и чтобы опять показывался на странице архива или категории за дату не когда публиковалась, а на сегодняшний день просмотра главной станицы категории или архива?
Может не понятно объясняю, но просто по другому не получается.
Заранее спасибо!
Не работает.как надо… Мне надо к примеру на вот эту страницу: http://seonowik.ru/2010/06/
или вот если нужно то на эту: http://seonowik.ru/2010/06/page/3/ и т.д. вот по такому приципу..
А как указал Сергей Бирюков просто совсем ничего не показвает, т.е ссылка не выводится вообще
Я предположил, что речь идёт об архиве за день. Универсальный вариант может выглядеть так:
2
3
4
5
6
7
8
9
10
11
12
13
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' ) : ?>
<a href='http://www.farosta.ru/'>Всероссийская дистанционная олимпиада</a>
<?php endif; ?>
Проверил с архивами за день, месяц и год. Указывать дату для сравнения можно в одном из следующих форматов: 25-06-2010, 06-2010, 2010.
Спасибо! Попробовал работает, но вот еще как такое сделать чтобы еще страница чтобы менялась?
т.к у меня много материалов за один день и получается постранично, как реализовать… Ты гений я знаю что сможешь, а я просто чайник совсем еще…
типа :
http://sait.ru/data(rghbvthe там 2010/06/06/page/2/
или
http://seonowik.ru/2010/09/page/3/
Т.е. чтобы на http://seonowik.ru/2010/09/page/2/ выводилась одна ссылка, а на http://seonowik.ru/2010/09/page/3/ — другая?
Да именно так чтобы в архивах разных дней показывалась своя и только своя ссылка.
И еще, вот я поставил ссылку в категорию по id, а в этой категории много стариц, т.е постраничная навигация. вот так :
http://seonowik.ru/category/raznoe/
http://seonowik.ru/category/raznoe/page/2/
…………….
http://seonowik.ru/category/raznoe/page/42/
и т.д. как сделать чтобы ссылка показывалась только на главной странице категории, а не на других ее страницах?
Сейчас стоит код вывода ссылки вот такой:
Всероссийские дистанционные конкурсы
и выводит ссылку на все страницы данной категории , а надо только на главной странице этой категории.
Помогите как это сделать.
Код вырезался вот код:
cc lang="php"]
Всероссийские дистанционные конкурсы
[/cc]
2
3
<a href='http://www.farosta.ru/'>Всероссийские дистанционные конкурсы</a>
<?php endif; ?>