Привет, друзья!
Данный пост поможет вам сделать вывод последних записей с итоговым выводом новостей в сайдбар или другое удобное для вас место. Все просто, если следовать моей инструкции!
Данный пост я хочу сделать за 30 минут, как говорится обойдемся без лишней <<воды>> и приступим сразу к делу!
Для начала, все будем делать через админ-панель вашего блога!
Вывод последних записей- это просто!
Сначала нам нужно в файл functions.php, добавить во этот код:
1
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
|
/** Последние записи
——————————————————
$post_num (5) = количество ссылок
$format (») = {avatar} {author}: {date:j.M.Y} — {a}{title}{/a} ({comments})
$cat (») = Категории из которых нужно выводить (5,15) или которые нужно исключить (-5,-15), через запятую (одновременно включение и исключение не работает (не имеет смысла) )
$list_tag (li) = Тег списка
*/
function kama_recent_posts ($post_num=5, $format=», $cat=», $list_tag=‘li’, $echo=true){
global $post, $wpdb;
$cur_postID = $post->ID;
// исключим посты главного запроса (wp_query)
foreach( $GLOBALS[‘wp_query’]->posts as $post )
$IDs .= $post->ID .‘,’;
$AND_NOT_IN = ‘ AND p.ID NOT IN (‘. rtrim($IDs, ‘,’) .‘)’;
if ($cat){
$JOIN = «LEFT JOIN $wpdb->term_relationships rel ON ( p.ID = rel.object_id )
LEFT JOIN $wpdb->term_taxonomy tax ON ( tax.term_taxonomy_id = rel.term_taxonomy_id ) «;
$DISTINCT = «DISTINCT»;
$AND_taxonomy = «AND tax.taxonomy = ‘category'»;
$AND_category = «AND tax.term_id IN ($cat)»;
//Проверка на исключение категорий
if( strpos($cat, ‘-‘)!==false )
$AND_category = ‘AND tax.term_id NOT IN (‘. str_replace( ‘-‘,», $cat ) .‘)’;
}
//если нужно показать автора
if( strpos($format, ‘{author}’)!==false ){
$JOIN .= » LEFT JOIN $wpdb->users u ON ( p.post_author = u.ID )»;
$SEL = «, u.user_nicename AS author, u.user_email, u.user_url»;
//если нужно показать аватар (gavatar)
if( strpos($format, ‘{avatar}’)!==false )
$av = «<img src=’http://www.gravatar.com/avatar/%1$s?s=25′ alt=» />»;
}
$sql = «SELECT $DISTINCT p.ID, post_title, post_date, comment_count, guid $SEL
FROM $wpdb->posts p $JOIN
WHERE post_type = ‘post’ AND post_status = ‘publish’ $AND_category $AND_taxonomy $AND_NOT_IN
ORDER BY post_date DESC LIMIT $post_num»;
$results = $wpdb->get_results($sql);
if (!$results)
return false;
preg_match (‘@{date:(.*?)}@’, $format, $date_m);
foreach ($results as $pst){
$x == ‘li1’ ? $x = ‘li2’ : $x = ‘li1’;
if ( $pst->ID == $cur_postID ) $x .= » current-item»;
$Title = $pst->post_title;
$a = «<a href='». get_permalink($pst->ID) .«‘ title='{$Title}’>»;
if ($format){
$avatar = $av ? sprintf( $av, md5($pst->user_email) ) : »;
$date = apply_filters(‘the_time’, mysql2date($date_m[1], $pst->post_date));
$Sformat = str_replace ($date_m[0], $date, $format);
$Sformat = str_replace(
array(‘{title}’, ‘{a}’, ‘{/a}’, ‘{author}’, ‘{comments}’, ‘{avatar}’),
array( $Title, $a, ‘</a>’, $pst->author, $pst->comment_count, $avatar ),
$Sformat
);
}
else $Sformat = «$a$Title</a>»;
$out .= »
<$list_tag class=’$x’>{$Sformat}</$list_tag>»; }
if ($echo)
return print $out;
return $out;
}
|
В то место, где будут выводится новости, вставьте следующий код:
1
2
3
4
5
|
<ul>
<?php kama_recent_posts (5); ?>
</ul>
// где, 5 это количество выводимых записей.
|
В принципе должно все работать, и теперь вы можете приступить к выводу новостей!
Ага успел дописать!
Уже минут 40 прошло, а еще только половина! Пойду наверное фильм включу и спать!
А завтра уже этот пост опубликую и еще один!
Да, бросил я вчера писать пост!
А что вы хотели? Потом еще 35 минут просидел просто-то так:писал пост сначала о другом <<делаем раздел новостей и выводим из него анонсы в сайдбар>>, уже половину написал (новости выводились бы в левый сайдбар- классно) и тут решил проверить скрипт на работоспособность.
А он как на зло не работает!
Добавил его, сохранил, а в редактор то не заходит: белый экран и этот код светится. Решил я быстро написать автору данного поста, который предлагал данный код:так и так, вообщем помоги! Отправил, думаю, скоро ответ придет, все настроим! Тут то я пост и допишу завтра!
А потом смотрю первая статья писалась 14.04.2012! Больше года назад! Ну и кто мне там ответит?Разве<<домовой>>:)! Это очередной заброшенный блог, о которых я напишу позже статью! Советую подписаться на обновления моего блога!
И начал я искать новый скрипт, не разочерововать же читателей!
Вообщем нашел один блог, кстати, долго искал- везде одни плагины! И тут пришлось поменять почти весь пост с начала! Теперь еще немного допишу и все:
Что можно настроить в данной функции?
- Можно настроить формат вывода (формат передается во втором параметре $format = »)
- Вы можете исключать или включать дополнительные категории
- Есть возможность изменить тег списка (вместо li использовать div)
Как настроить формат вывода?
- {comments} — количество комментариев в статье
- {title} — заголовок статьи
- {date:j.M.Y} — дата в формате j.M.Y (11.Апр.2010);
- {a} и {/a} — тег ссылки. Открывается и закрывается.
В итоге, вывод функции будет такой:
1
2
3
4
|
<ul>
<?php kama_recent_posts (5, ‘{a}{title}{/a} ? {date:j.M.Y} // {comments}’); ?>
</ul>
// выведет список в формате — <li class=’li1′><a href=’http://ссылка’ title=’Заголовок статьи’>Заголовок статьи</a> ? дата // количество комментариев</li>
|
Ну как вам стиль кода? Это я с плагином Crayon Syntax Highlighter забавляюсь! А у вас есть такой плагин? А ну бегом ставить:
Как вставить код в блог?Crayon Syntax Highlighter-ответ на все ваши вопросы!
Как включать или исключать категории, с которых будет производится вывод последних записей?
- чтобы исключить:в третьем параметре пишем ID категорий через запятую с знаком <<минус>>(например: -10,-20-,25)
- для включения категорий:в третьем параметре пишем ID категорий через запятую(например: 10,20,25)
1
2
3
4
5
6
7
8
9
|
<ul>
<?php kama_recent_posts (5, », ‘10,20,25’); ?>
</ul>
// выведет список последних записей только из категорий, ID которых равны 10, 20 или 25
<ul>
<?php kama_recent_posts (5, », ‘-10,-20-,25’); ?>
</ul>
// выведет список последний записей из всех категорий, кроме 10, 20 или 25
|
Вот и все, за полчаса наверное не получилось:)! Но, несмотря на это, пост оказался очень полезным и доступным! А вы как считаете? Жду ваших комментариев и подписок на обновления блога!
В принципе в шаблонах WordPressa (может даже у всех) уже есть стандартный виджет для вывода свежих записей.
Но своими настройками и функциями он нас порадовать не сможет, по сути их как бы и нет.Только отображения количества записей и дата!
Вот почему я решил написать о данных возможностях ↑
На сегодня все, пока!
С уважением, Владислав Лемишко.
Отличная статья но меня больше устраивает плагин похожих записей )
Плагин — это в любом случае нагрузка на блог! А там кому как угодно!
Влад, я решил прогнать твой сайт в xtool и обнаружил что ты под АГС, ты знал об этом?
В любом случае не расстраивайся ты сможешь вывести его от туда!
А я то думал, что-то в меня с Яндексом не то! Нет, об этом не знал! Как вывести, есть предложения?
Я недавно проверял — было все ок (и вчера вроде тоже), а тут такое!
Ну для начала установи этот плагин, он закроет все внешние ссылки в постах и они будут внутренними.
http://seo-np.ru/wp-no-external-links-sdelaet-vneshnie-ssylki-vnutrennimi
потом в шаблоне посмотри ссылки внешние и закрой их от индексации.
Я это все сделал и посты у меня тоже есть!
На блоге kama (wp-kama.ru) есть замечательный скрипт кольцевой перелиновки.а этот скрипт видимо старый. а вообще у него много авторских функций
Влад! Самое первое, не надо сильно расстраиваться.
Надо найти причину, почему это произошло и исправлять ситуацию. Просто надо поискать информацию на эту тему.
А статья у тебя хорошая, вижу каждый день стали появляться статьи. Молодец!
Стараюсь писать каждый день, а там как получается!
Шаблон на ссылки плагином TAC проверь, у меня на блоге написанно как это делать.
У меня тоже, я давно их уже удалил!
у тебя много исходящих ссылок (730) если не ошибаюсь. Есть такой сайт solomono.ru он показывает все исходящие ссылки и их происхождения . закрывай их или удаляй и агс должны снять
Ладно, спасибо! А разве плагин в некотором роде не должен был их позакрывать?
А может ты что-то не то смотришь? Я посмотрел другие блоги в них гораздо больше, это просто общее количество исходящих ссылок, которые есть на блоге! По сути плагин их должен переделать и большинство у меня уже закрытые!
Есть те сайты на которых и больше ссылок с сайта, но у них количество ссылок На сайт больше чем С сайта. А у тебя такое соотношение :
Ссылки на сайт:
Доноров — 7, всего 71
Ссылки с сайта:
акцепторов — 26, всего ссылок — 730.
Поэтому и висит Агс. Возраст твоего сайта всего 7 месяцев а на нем уже 730 ссылок, это очень плохо нужно все закрыть. По хорошему лучше на начальном этапе, ссылок с сайта должно быть 0.
Ясно, буду закрывать!