• DONATE to NULLED!
    Вы можете помочь Форуму и команде, поддержать финансово.
    starwanderer - модератор этого раздела будет Вам благодарен!

Помощь По вопросу навигации

Статус
В этой теме нельзя размещать новые ответы.

phoenix555

Постоялец
Регистрация
31 Окт 2008
Сообщения
113
Реакции
20
Прошу помочь разобраться с wordpress-ом.
При написании статей предлагается разместить его в рубрике.
А как сделать выборку статей на создаваемой СТРАНИЦЕ?
 
Прошу помочь разобраться с wordpress-ом.
При написании статей предлагается разместить его в рубрике.
А как сделать выборку статей на создаваемой СТРАНИЦЕ?

Каким образом надо делать выборку, по ключевому слову? Подробнее можно?
 
Смутное подозрение, что вы хотите чтобы после основной статьи, шли ссылки на статьи схожие с этой? А вообще, что значит выборку статей на странице, есть примеры?
 
Это можно реализовать при помощи меток. В плагине Simple Tag есть фунция st_related_posts, которая как раз выводит похожие записи. Её нужно разместить в шаблоне.
Ещё для этого есть спец плагин, он так и называется Related Post.
Лично мне эти плагины не понравились, т.к. это доп нагрузка на сервер. Я для этого написал функцию
Код:
<?php
function related_posts() {
	global $wpdb, $post;
	$pref = $wpdb->prefix;
	$posttags = get_the_tags();
	$postcats = get_the_category();
	
	if ($posttags) {
		foreach($posttags as $tag) {
			$tag_in .= $tag->term_id.','; 
		}
		$tag_in = substr($tag_in, 0, strlen($tag_in)-1 );
		$intag = "$wpdb->term_taxonomy.term_id IN ( ".$tag_in." ) and ";
	} else $intag = '';
	
	if ($postcats) {
		foreach ($postcats as $postcat) {
			$cat_in .= $postcat->cat_ID.',';
		}
		$cat_in = substr($cat_in, 0, strlen($cat_in)-1 );
		$incat = "wp_term_relationships.object_id in ( ";
		$incat.= "select wp_term_relationships.object_id ";
		$incat.= "from wp_term_taxonomy inner join wp_term_relationships on wp_term_taxonomy.term_taxonomy_id = wp_term_relationships.term_taxonomy_id ";
		$incat.= "where wp_term_taxonomy.term_id in (".$cat_in.") ) and";
	} else $incat = '';
	
		$query = "select wp_term_relationships.object_id, wp_posts.post_title ";
		$query.= "from wp_term_taxonomy inner join wp_term_relationships on wp_term_taxonomy.term_taxonomy_id = wp_term_relationships.term_taxonomy_id inner join wp_posts on wp_term_relationships.object_id=wp_posts.ID ";
		$query.= "where ".$intag;
		$query.= $incat." wp_posts.post_type LIKE 'post' and wp_posts.post_status LIKE 'publish' ";
		$query.= "group by wp_term_relationships.object_id ";
		$query.= "order by RAND() limit 5";

		$rel_posts = $wpdb->get_results($query);
		if (count($rel_posts) == 0) {

		} else {
						echo '<h3>Похожие новости</h3>';
			echo '<ul>';
			foreach ($rel_posts as $rel_post) {
				echo '<li><a href="'.get_permalink($rel_post->object_id).'" >'.$rel_post->post_title.'</a></li>';
			}
			echo '</ul>';
		}

}
?>
Её нужно поместить в файле functions.php темы, для вызова в шаблон в нужном месте вставить
Код:
<?php related_posts(); ?>
 
Что-то я не догоняю.
При написании поста есть возможность выбрать, в какой он будет рубрике, но нет возможности выбрать в какой он будет странице. И, в админке, в разделе страниц нет возможности выбрать, какие посты здесь поставить.
Именно посты, а не ссылки на них.
 
Что-то я не догоняю.
При написании поста есть возможность выбрать, в какой он будет рубрике, но нет возможности выбрать в какой он будет странице.

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