Реклама на сайте Advertise with us

Wordpress - вывод разных частей поста

Расширенный поиск по форуму
 
Новая тема Новая тема   
Автор
Поиск в теме:



С нами с 29.09.06
Сообщения: 1127
Рейтинг: 1237

Ссылка на сообщениеДобавлено: 04/04/11 в 14:19       Ответить с цитатойцитата 

Как в wordpress сделать такое:
пост сотоит из 3 частей, нужно что бы первая 1 часть выводилась на главной, 2 часть в категориях, 3 часть в самом посте.
частично сделал:
1 часть<!--more--><!--noteaser-->2 часть
в теме (index.php) вывожу <?php the_content(""); ?>

а как со 2 и 3 частями сделать? C меня семок кулек icon_smile.gif

0
 

Спасибо всем, кто еще МОЖЕТ!

С нами с 25.07.04
Сообщения: 3875
Рейтинг: 1570


Передовик Master-X (16.04.2011)
Ссылка на сообщениеДобавлено: 04/04/11 в 14:59       Ответить с цитатойцитата 

Manowar: А в датах и тегах что? smail101.gif

Код:
АНОНС

<!--more-->

<!--noteaser-->

ПОСТ

АНОНС (авторская редакция) выводится на индексе и в зависим. от шаблона - по поиску, тегам, дате и категории. ПОСТ выводится только в посте.

Разве есть другие тэги и варианты с третьей частью? Самому интересно, пригодилось бы, но думаю это уже доп. кодить нужно.

На всяк. случай (нашел) и для себя тоже icon_smile.gif Codex WP - Иерархия шаблонов

ПЫСЫ Это случаем не для избежания дублирования? Нашел ссылочку - Дублированный контент на сайте с wordpess убираем плагином evermore

8
 



С нами с 09.03.09
Сообщения: 6053
Рейтинг: 3538


Передовик Master-X (01.11.2009) Передовик Master-X (16.11.2009) Передовик Master-X (01.02.2011) Передовик Master-X (01.12.2011) Передовик Master-X (16.12.2011) Ветеран трепа Master-X (01.01.2014)
Ссылка на сообщениеДобавлено: 04/04/11 в 19:08       Ответить с цитатойцитата 

Когда пишешь пост создавай два поля (custom field) с именами home и archive. В них добавляй контент, который будет показываться на домашней и странице архивов соответственно.

В конец functions.php нужно добавить
Код:
function custom_the_content( $content ) {
   $c = $content;
   if( is_home() || is_front_page() ) {
      $c = get_post_meta( get_the_id(), 'home', true );
   }
   else if( is_archive() ) {
      $c = get_post_meta( get_the_id(), 'archive', true );
   }
   return $c !== '' ? $c : $content;
}

8
 



С нами с 29.09.06
Сообщения: 1127
Рейтинг: 1237

Ссылка на сообщениеДобавлено: 04/04/11 в 19:47       Ответить с цитатойцитата 

photomuza, вот и я думал что врядли так можно сделать...
Тогда вот так объясню: на индексной странице и странице категорий - посты у меня идут анонсами, но мне нужно что бы в индексе выводилось:
1 часть(анонс) до этих тегов <!--more--><!--noteaser--> - с этим все ясно - в посте втавляем <!--more--><!--noteaser--> а в теме выводим <?php the_content(""); ?>

а в категориях мне нужно что бы вывдилось то что после этих тегов <!--more--><!--noteaser--> и желательно тоже в сокращенном варианте т.е. что бы тоже стояло "читать далее" и ссылалось на последнюю часть поста (3 часть), но такое без перекодировке я понял не селаешь... а тогда как сделать хотя бы это - "а в категориях мне нужно что бы вывдилось то что после этих тегов <!--more--><!--noteaser-->" ?

Yacc, можешь поподробнее как создавать эти два поля? и если у меня для вывода катов используется category.php а не archive - код который ты даешь не изменится?

0
 



С нами с 09.03.09
Сообщения: 6053
Рейтинг: 3538


Передовик Master-X (01.11.2009) Передовик Master-X (16.11.2009) Передовик Master-X (01.02.2011) Передовик Master-X (01.12.2011) Передовик Master-X (16.12.2011) Ветеран трепа Master-X (01.01.2014)
Ссылка на сообщениеДобавлено: 04/04/11 в 20:15       Ответить с цитатойцитата 

Цитата:
...как создавать эти два поля?


1. Если секции Custom Fields нет, то включи её:




2. Кликай Enter new:




3. Вводи название поля (name) и значение (value) и нажимай Add Custom Field:




4. Готово. Добавь второе поле:



Цитата:
...если у меня для вывода катов используется category.php а не archive - код который ты даешь не изменится?

Не изменится ибо is_archive() == is_category() || is_tag() || is_tax() || is_date().
Если тебе нужны только архивы категорий замени is_archive() на is_category().

8
 



С нами с 29.09.06
Сообщения: 1127
Рейтинг: 1237

Ссылка на сообщениеДобавлено: 04/04/11 в 21:18       Ответить с цитатойцитата 

Yacc, спасибо! smail54.gif завтра буду пробовать..

0
 



С нами с 29.09.06
Сообщения: 1127
Рейтинг: 1237

Ссылка на сообщениеДобавлено: 05/04/11 в 18:07       Ответить с цитатойцитата 

добавил в functions.php этот код:
Код:

<?php
function custom_the_content( $content ) {
   $c = $content;
   if( is_home() || is_front_page() ) {
      $c = get_post_meta( get_the_id(), 'home', true );
   }
   else if( is_archive() ) {
      $c = get_post_meta( get_the_id(), 'archive', true );
   }
   return $c !== '' ? $c : $content;
}
?>

и добавил поля..
но в не на главной не категориях ничего не выводится..наверно нужно в index.php и category.php вставить что то?

0
 



С нами с 09.03.09
Сообщения: 6053
Рейтинг: 3538


Передовик Master-X (01.11.2009) Передовик Master-X (16.11.2009) Передовик Master-X (01.02.2011) Передовик Master-X (01.12.2011) Передовик Master-X (16.12.2011) Ветеран трепа Master-X (01.01.2014)
Ссылка на сообщениеДобавлено: 05/04/11 в 18:54       Ответить с цитатойцитата 

Да, пардон.

В functions.php ещё нужно добавить

Код:
add_filter( 'the_content', 'custom_the_content', 10, 1 );

8
 



С нами с 29.09.06
Сообщения: 1127
Рейтинг: 1237

Ссылка на сообщениеДобавлено: 05/04/11 в 19:13       Ответить с цитатойцитата 

Спасибо бро, за ответы! пока лазил и думал тут нашел проще вариант:
так же создаем поля как ты говорил, а выводим просто
<?php echo (get_post_meta($post->ID, 'home', true)); ?> для домашней
и
<?php echo (get_post_meta($post->ID, 'archive', true)); ?> для катов соответсвенно
а так спасибо - направил на правильное направление!

0
 
Новая тема Новая тема   

Текстовая реклама в форме ответа
Заголовок и до четырех строчек текста
Длина текста до 350 символов
Купить рекламу в этом месте!


Перейти:  



Спонсор раздела Стань спонсором этого раздела!

Реклама на сайте Advertise with us

Опросы

Рецепт новогоднего блюда 2022



Обсудите на форуме обсудить (11)
все опросы »