Поддержка Проблемы и решения Вывод полных записей

  • Ув. форумчане, выручайте пожалуйста, с WP работаю буквально пару дней — строго не судите. Нужно сделать вывод записей (половинка записи и ссылка читать далее) Я так понимаю нужно, что-то :), написать в файле function.php и в файле там где хочу отобразить. Все выводится только как ссылки. Как организовать можно? Вообщем то что написано у меня в function.php :

    /** Последние записи
    ------------------------------------------------------
    $post_num (5) = количество ссылок
    $format ('') = {avatar} {author}: {date:j.M.Y} - {a}{title}{/a} ({comments})
    $cat ('') = Категории из которых нужно выводить (5,15) или которые нужно исключить (-5,-15), через запятую (одновременно включение и исключение не работает (не имеет смысла) )
    $list_tag (li) = Тег списка
    */
    function recent_posts ($post_num=5, $format='', $cat='', $list_tag='li', $echo=true){
    	global $post, $wpdb;
    
    	$cur_postID = $post->ID;
    
    	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
    	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 ( (int)$pst->ID == (int)$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 .= "\n<$list_tag class='$x'>{$Sformat}</$list_tag>";
    	}
    	if ($echo)
    		return print $out;
    	return $out;
    }

    И там где вывожу:`<h2>Последние записи</h2>
    <ul>
    <?php get_archives(‘postbypost’, 6); ?>

    </ul>`

Просмотр 5 ответов — с 1 по 5 (всего 5)
  • Нужно сделать вывод записей (половинка записи и ссылка читать далее) Я так понимаю нужно, что-то 🙂

    Да, нужно использовать функцию the_excerpt()

    Благодарю, подскажите еще в какой участок кода эту функцию вставить. На данный момент у меня отображает только ссылку с названием записи.

    В цикл на замену the_content(). Не забудьте фильтры в functions.php и сделать бэкап темы.

    Вставил в sidebar.php

    <h2>Новости</h2>
    <ul>
       <?php the_excerpt() ?>
    </ul>

    Правильно?
    Подскажите что в functions.php нужно? Мне

    Не забудьте фильтры

    вообще ничего не говорит, к сожалению. Если не затруднит то кодом. Грустно…у меня нет ни цикла ничего 🙂

    чтобы правильно сунуть the_excerpt() в шаблон

    надо знать две вещи:
    1. что такое шаблон и их иерархия http://codex.wordpress.org/%D0%98%D0%B5%D1%80%D0%B0%D1%80%D1%85%D0%B8%D1%8F_%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D0%BE%D0%B2
    2. надо знать что такое Циклы WP http://codex.wordpress.org/%D0%A6%D0%B8%D0%BA%D0%BB_WordPress

    изучить какой то готовый шаблон. например тот что archive.php в теме. посмотреть как он устроен.

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

Просмотр 5 ответов — с 1 по 5 (всего 5)
  • Тема «Вывод полных записей» закрыта для новых ответов.