Делаю электронную версию журнала на WordPress.
План примерно такой:
Статьи журнала будут опубликованы в разных рубриках.
Если читатель захочет сделать выборку статей по определенной теме, он может открыть нужную рубрику или задать ключевое слово в поиск.
А если он захочет прочитать все статьи журнала, например журнал №1 ?
Пока идея одна – к каждой статье номера добавлять метку – журнал №1,
а дальше через поиск по метке.
Но это немного громоздко, и непонятно, как при этом вывести список номеров журнала в сайдбаре?
Если у вас есть мысли, как это удобнее организовать, подскажите, пожалуйста.
На все статьи журнала номера 1 поставить одинаковую дату публикации? Тогда можно сортировать по дате в календаре или Архиве. Пользоваться отложенной публикацией (например, каждый редактор, отвечающий за рубрику сдал свою статью, а дату поставил будущую, чтобы остальные подтянулись…)
Как вариант сойдет.
Может быть, еще есть варианты?
Тоже интересует данный вопрос.
Пока остановилась на таком варианте: к каждой записи добавляется через произвольное поле определенное значение ключа.
Для всех записей одного выпуска (№ журнала) – оно одинаково.
Теперь новая сложность – как собрать записи с одинаковым значением ключа?
Нужна функция, которая будет это делать.
Если кто то может помочь с этим, пожалуйста помогите.
Допустимо довільно поле називається keyn. Якщо Вам треба виводити пости номеру журнала приміром 4, то код відповідно буде такий:
Буде виводитися до 5 заголовків постів із журнала номер 4. Можете міняти код під себе.
Чи Вам потрібно щось інше?
Доречі, якщо вписати в get_posts(‘numberposts=5&order=DSC&orderby=date’) певну категорію, то Ви можете отримувати певну категорію статтей із певного журналу.
gurvinyk, дякую за допомогу. Спробую.
Звертайтеся. 🙂
gurvinyk, почему то не работает.
Мне собственно нужно как то автоматизировать процесс вывода.
Чтобы не прописывать код для каждого журнала, а автоматически выводить в сайдбаре список:
Журнал 1
журнал 2
Журнал 3
И при нажатии на любой из журналов открывалась страница со статьями этого журнала,
примерно так, как это происходит с рубриками и архивами.
Дивно. Я на своєму блозі експерементував і все працювало.. А які помилки видає?
Можна зробити цикл виведення типу:
де $n – кількість журналів
Parse error: syntax error, unexpected $end in X:\home\test.ru\…\sidebar.php on line 185
Похоже, что цикл не закрыт.
Це в першому коді чи другому помилка?
Бо в другому справді є 🙂 Я його не тестив 🙂
А в першому помилок не повинно бути!
gurvinyk, в первом ошибок действительно, нет.
Он просто выводит не совсем то, что мне нужно.
Второй, возможно делает то, что нужно, но он к сожалению, не работает.
В чем может быть проблема?
Я даже названия ключа прописала то же самое, что и у вас, и не работает.
Дивно. Я пробував. У мене перший код вийшов. Навіть пост у своєму бложеку зробив 🙂
Спробуйте перший код спочатку щоб запрацював. Як вийде – можеет міняти під себе.
Опишіть, що Вам виводить і що там не так?
Этот код выводит список постов Журнала 2.
<?
$postslist = get_posts(‘numberposts=5&order=DSC&orderby=date’);
foreach ($postslist as $post) :
setup_postdata($post);
?>
<? $keyn = get_post_meta($post->ID, ‘keyn’, true); ?>
<?php if ($keyn==’Журнал 2′)
{
?> <a href="<?php the_permalink() ?>"> <? the_title(); ?> </a> <?
}
?><?php endforeach; ?>
Чтобы вывести все журналы нужно повторить этот код столько раз, сколько существует журналов.
А ведь их может быть сотня. Вообщем, получается практически ручной вывод.
Хотелось бы как то автоматизировать этот процесс, чтобы выводился не список постов, а список журналов в виде ссылок:
Журнал 1
журнал 2
Журнал 3
И при нажатии на любой из журналов, чтобы открывалась страница со статьями этого журнала,
примерно так, как это происходит с рубриками и архивами.
А якщо в сайдбарі зробити:
<a href="url?journal_number=1">Журнал 1</a>
<a href="url?journal_number=2">Журнал 2</a>
<a href="url?journal_number=3">Журнал 3</a>
….
Ну а за посиланням в тілі виведення постів
<?
$postslist = get_posts(‘numberposts=5&order=DSC&orderby=date’);
foreach ($postslist as $post) :
setup_postdata($post);
?>
<? $keyn = get_post_meta($post->ID, ‘keyn’, true); ?>
<?php if ($keyn==$journal_number)
{
?> <a href="<?php the_permalink() ?>"> <? the_title(); ?> </a> <?
}
?><?php endforeach; ?>
По видимому, так и придется сделать.
Но хотелось бы хоть немного автоматизировать этот процесс.
Выводить все вручную не продуктивно.
gurvinyk, помогите, пожалуйста, доработать этот код:
<?
for ($i=0;$i<$n;$i++)
{
echo ‘Журнал №’;
echo $i+1;
$postslist = get_posts(‘numberposts=5&order=DSC&orderby=date’);
foreach ($postslist as $post) :
setup_postdata($post);
$keyn = get_post_meta($post->ID, ‘keyn’, true);
if ($keyn==$n)
{
?> <a href="<?php the_permalink() ?>"> <? the_title(); ?> </a> <?
}
?>
<?php endforeach; ?>
<?
}
?>
Я пыталась сделать это самостоятельно, но к сожалению, ничего не вышло.
А он, насколько я понимаю, выводит список журналов и статей из каждого журнала – почти то, что нужно.
Що конкретно потрібно доробити?
gurvinyk, да просто, чтобы он работал.
Насколько я понимаю, этот код должен выводить список журналов и статей из каждого журнала.
А он, к сожалению, ничего не выводит.
Ошибок не вызывает, но и не выводит ничего.
Это цикл, в котором $i увеличивается на 1 от начального значения, равного 0, до тех пор, пока $i меньше $n. Значение $n не определено, а стало быть равно 0. Т.е. цикл вообще не выполняется.
Ю.Б., спасибо. Я на эту строку и грешила потому, что это единственная строка, которую я не поняла.
А как определить это значение?
Це значення або приходе іззовні або пишеться вручну. Винен. Не пояснив. 🙁
Тобто це кількість журналів.
Впринципі можна написати функцію яка б визначала кількість журналів. Подумаю над цим. Або можете вручну.
Поставила для примера 10.
<?
for ($i=0;$i<10;$i++)
{
echo ‘Журнал №’;
echo $i+1;
$postslist = get_posts(‘numberposts=5&order=DSC&orderby=date’);
foreach($postslist as $post) :
setup_postdata($post);
$keyn = get_post_meta($post->ID, ‘keyn’, true);
if($keyn==$n)
{
?>
<a href="<?php the_permalink() ?>"><? the_title(); ?></a><br />
<? } ?>
<?php endforeach; ?>
<? } ?>
Появился список журналов.
Журнал №1 Журнал №2 Журнал №3 Журнал №4 Журнал №5 Журнал №6 Журнал №7 Журнал №8 Журнал №9 Журнал №10
Статьи их журналов не выводятся.
На самом деле журналов всего 2. В каждом по 3 статьи.
Дивно. На моєму блозі виводилися.
Ви всюди прописали у статтях довільні поля?
Да. прописала, но на сайте ничего не отображается.
Пожалуйста, помогите исправить этот код.
Спробуйте так:
<?
for ($i=0;$i<10;$i++)
{
echo ‘Журнал №’;
echo $i+1;
$postslist = get_posts(‘numberposts=5&order=DSC&orderby=date’);
foreach($postslist as $post) :
setup_postdata($post);
$keyn = get_post_meta($post->ID, ‘keyn’, true);
if($keyn==$i)
{
?>
<a href="<?php the_permalink() ?>"><? the_title(); ?></a><br />
<? } ?>
<?php endforeach; ?>
<? } ?>
gurvinyk, спасибо за то, что пытаетесь помочь.
Вот, что у меня получается:
Журнал №1
Статья 1
Статья 2
Статья 3
Статья 4
Статья 5
Статья 6
Журнал №2 Журнал №3 Журнал №4 Журнал №5 Журнал №6 Журнал №7 Журнал №8 Журнал №9 Журнал №10
Всего журналов 3, а выводится 10, т.к. в коде указана цифра 10.
Но она там стоит с расчетом на будущее.
Как сделать, чтобы выводились только актуальные журналы?
И еще – ключ keyn добавлен только к 3м статьям, а выводятся все, которые есть на сайте.
Как сделать, чтобы это все работало корректно?
Народ, помогите, плиз – очень нужно.
Я заплачу тому, кто напишет нужную функцию.
Вот, что требуется сделать:
К каждой статье через произвольное поле будет добавляться ключ, например kein и значение ключа, согласно номеру журнала.
Например, Журнал 1, Журнал 2 и т.д.
Нужна функция, которая соберет все статьи со значениями "Журнал 1, Журнал 2, Журнал 3 и т.д." и выведет в сайдбаре или на отдельной странице список журналов в таком виде:
Журнал №1
Статья 1
Статья 2
Статья 3
Журнал №2
Статья 1
Статья 2
Статья 3
Журнал №3
Статья 1
Статья 2
Статья 3
Если надпись "Журнал №1" будет вести на страницу со статьями этого журнала, т.е. будет ссылкой, то вообще будет замечательно.
Пожалуйста, напишите кто-нибудь. Деньги уже приготовила.
Переименуйте «Архив» на «Журнал» и будет тоже самое. Нет?
К сожалению, нет.
Хотя, это тоже архив, только собранный из значений произвольных полей.
Какова планируемая периодичность выхода журнала?
Я действительно не понимаю, зачем огород городить…
Вариант 1: Всем статьям Журнала №1 даете, например, метку «Журнал №1», статьям Журнала №2 — метку «Журнал №2» и т.д.
Вариант 2: Ну или если Журнал выходит раз в месяц, то следите, чтобы статьи публиковались в нужном месяце. Если чаще, то следите за датой — чтобы дату публикации ставили одну и туже. Тогда стандартными средствами вывода архива (календаря по годам, месяцам, датам, меткам) получаете «подшивки».
Может я как-то задачу неправильно понимаю, но как по мне, то проблема с произвольными полями из пальца высосона. Впрочем, если Вы хотите, то почитайте Custom Fields WordPress примеры 11, 12 у Соники. Или Сортировка постов по произвольным полям. Только еще раз повторю свое imho — без всего этого можно обойтись стандартными средствами WP чуть-чуть видоизменив шаблон Архива… ну, или… я как-то очень по-своему понимаю Вашу задачу и не вижу недостатков в предлагаемом решении.