Поддержка → Проблемы и решения → Вывод постов как на новостных сайтах
Вывод постов как на новостных сайтах
-
Ребят нашел интересную статью о том как можно вывести новости https://www.alex.kr.ua/2015/01/wordpress-vyvod-materialov-kak-na-novostnyx-sajtax.html , этот вариант мне идеально подходит, но как всегда проблема, мне нужно его поместить в отдельных блок на главной странице, можно это дело как-то впихнуть в шорткод, или как его можно вывести?
-
а что не так с классом или кодом который, поможете? пожалуйста
а что не так с классом или кодом который
Класс вставлен не как атрибут тега, а как простой текст. То есть, не туда.
Что с кодом который — без понятия, я Ваш код не вижу.
И еще, похоже, Вы что-то вставили в виндовой кодировке.
$args = array( 'posts_per_page' => $number, 'ignore_sticky_posts' => 1, // не выводить закреплённые записи, 0 - выводить 'cat' => $exclude ); query_posts( $args ); $checked = true; // перед циклом переключатель включен date_default_timezone_set('Europe/Kiev'); // устанавливаем правильную зону $now = date('d.m.Y',time()); // узнаём сегодняшний день $comparedate = $now; // перед циклом дата для сравнения установлена текущая while ( have_posts() ) : the_post(); $class = ''; // обнуляем переменную для класса выделенного материала $theid = get_the_ID(); // ID материала заносим в переменную // Разбивка на дни. Если не нужно отличать дни написания материалов, удалите следующие 8 строк $posted = get_the_time( 'd.m.Y', $theid ); // узнаём, в какой день написан пост $checked = ( strtotime($posted) < strtotime($comparedate) ) ? false : true; // выключить переключатель, если дата публткации давнее даты для сравнения if ( strtotime($posted) < strtotime($comparedate) ) $yesterday = true; // если материал написан вчера if ( $yesterday && !$checked ) { // если это вчера и переключатель не положительный ?> <div class="newsfeedtitle"> <?php if ( get_the_time('d.m.Y', $theid) == date('d.m.Y') ) $theday = 'Сьогодні'; elseif ( get_the_time('d.m.Y', $theid) == date('d.m.Y', strtotime('-1 day')) ) $theday = 'Вчора'; else $theday = get_the_time('d.m.Y', $theid); echo $theday; ?> </div> <?php } // конец разбивки на дни $tag_ids = wp_get_post_tags( $theid, array( 'fields' => 'ids' ) ); // получаем ID всех тегов поста $class = ( !empty( $highlight ) && in_array( $highlight, $tag_ids ) ) ? ' class="important"' : '' ; ?> <?php $terms = wp_get_post_terms( $theid,'label' ); $styles = ''; if( $terms && ! is_wp_error($terms) ){ foreach( $terms as $term ){ $styles .= ' ' . $term->slug . ' '; } } $class = ( strlen($class) > 0 ) ? mb_substr($class, 0, strlen($class)-1) . $styles . '"' : ' class="' . $styles . '"'; ?> <?php $terms = wp_get_post_terms( $theid,'label' ); // получить список Видов материала, выбранных в новости $icons = ''; if( $terms && ! is_wp_error($terms) ){ foreach( $terms as $term ){ switch ($term->slug) { case 'important': $icons = '<i class="fa fa-warning"></i> '; break; // иконки берём здесь: http://fontawesome.io/cheatsheet/ case 'video': $icons = '<i class="fa fa-video-camera"></i> '; break; case 'breaking': $icons = '<i class="fa fa-flash"></i> '; break; case 'photo': $icons = '<i class="fa fa-photo"></i> '; break; case 'exclusive': $icons = '<i class="fa fa-check-circle"></i> '; break; default: $icons = ''; } } } ?> <?php echo $class ?> <?php if ($time) { ?><time class="newsfeedtime" datetime="<?php the_time('Y-m-d') ?>"><?php echo get_the_time( 'G:i', $theid ) ?></time><?php } ?> <a class="newsfeed" href="<?php echo get_permalink( $theid ) ?>" title="Читать: <?php the_title_attribute(); ?>"><?php the_title(); ?></a><hr> <?php $comparedate = $posted; // перед окончанием цикла дату для сравнения уравниваем с датой публикации endwhile; wp_reset_postdata(); // сброс параметров запроса к базе данных } add_action( 'init', 'build_taxonomies', 0 ); function build_taxonomies() { register_taxonomy( 'label', // название таксономии на латинице 'post', array( 'hierarchical' => true, // на подобие таксономии рубрик, удобно 'label' => 'Вид матеріалу', // название таксономии 'query_var' => true, 'rewrite' => true ) ); }
пробовал вставить в ссылку тот код, тоже не помогло
- Ответ изменён 5 лет, 5 месяцев назад пользователем bugsbunnny.
Тоже самое с иконками, я видимо не туда все вставляю, подскажите как правильно вставлять, куда именно имеется ввиду
И еще хотел спросить, Юрий, ваш плагин http://blog.portal.kharkov.ua/2008/05/10/auto_more_3/ он может добавлять читать далее к уже существующим постам?
меняем
<?php echo $class ?> <?php if ($time) { ?><time class="newsfeedtime" datetime="<?php the_time('Y-m-d') ?>"><?php echo get_the_time( 'G:i', $theid ) ?></time><?php } ?> <a class="newsfeed" href="<?php echo get_permalink( $theid ) ?>" title="Читать: <?php the_title_attribute(); ?>"><?php the_title(); ?></a><hr>
на
<div <?php echo $class ?>> <?php if ($time) { ?><time class="newsfeedtime" datetime="<?php the_time('Y-m-d') ?>"><?php echo get_the_time( 'G:i', $theid ) ?></time><?php } ?> <a class="newsfeed" href="<?php echo get_permalink( $theid ) ?>" title="Читать: <?php the_title_attribute(); ?>"><?php the_title(); ?></a> </div><hr>
или типа того в зависимости от того, что хотите получить на выходе.
auto_more_3/ он может добавлять читать далее к уже существующим постам?
Он к постам (в понимании «записи в БД») ничего не добавляет, ни к старым, ни к новым. Все делается «на лету», после получения массива $posts из базы и перед обработкой в Цикле. То есть, ни включение, ни отключение плагина никак не влияет на содержимое БД.
А как сделать чтобы здесь был класс
<a class="newsfeed" href="<?php echo get_permalink( $theid ) ?>" title="Читать: <?php the_title_attribute(); ?>"><?php the_title(); ?></a>
Я просто хочу выделять цветом и жирностью текст ссылки, а время должно остаться таким жеЯ просто хочу выделять цветом и жирностью текст ссылки
Можно так:
<a class="newsfeed <?php echo $class; ?>" ...
Но тогда надо переделать ту часть, которая формирует $class так, чтобы там было только имя класса, безclass=
и кавычек.А можно и так
div.vazhlive a { color ...
ничего не переделывая
http://htmlbook.ru/samcssА можно и так
div.vazhlive a { color …
ничего не переделываякстати об этом не подумал, спасибо большое за подсказку
а по поводу плагина, у меня просто в блоге выводится весь текст статьи (сейчас я поменял excerpt) и вообще описания нету, из-за того что его нету, как можно решить, чтобы выводилось например только 15 слов?
сейчас я поменял excerpt
Логично.
чтобы выводилось например только 15 слов?
add_filter( 'excerpt_length', function() { return 15; });
Юрий опять к вам за помощью, почему то у меня пост который сегодня был опубликован, слетает футер, его нету, не понимаю в чем проблема
https://gyazo.com/b960fbac34a0e11ea87792e3cb69678eэто либо в коде этом проблема либо он конфликтует с темой, я не понимаю((
Проблему вижу. Пытался посмотреть html страницы и понял, что это я не осилю.
это либо в коде этом проблема либо он конфликтует с темой, я не понимаю((
Отключите (закомментируйте) код или его часть и посмотрите, что получится.
я убрал код разбивки на дни но ничего не изменилось((
странно, если поставить дату поста раньше последней добавленной (21.08) то все вроде как нормально, но если сразу днем позднее то нету.
Я сайт переносил и соответственно все записи тоже(
- Тема «Вывод постов как на новостных сайтах» закрыта для новых ответов.