WordPress как на ладони
wordpress jino

[РЕШЕНО][нужно подправить] index_category.php создать домашнюю страницу из категорий

как создать страницу category_my.php по типу index.php
есть сайт, на домашней странице сетка новых постов, только название и миниатюра.

Как такое сделать только, чтоб выводились все таксономии из category (или любой нужной произвольной таксономии), и как сделать для этого пагинацию.

что сделано
1 создан отдельный шаблон страница index_category.php
2 создана ссылка под эту страницу
3 для каждой таксономии создано дополнительное поле с адресом миниатюры

можно воспользоваться таким кодом Все настраивается, высвечиваются картинки, заголовки , настроена сетка, но нет пагинации.

$args=array(
	'orderby' => 'name',
	'order' => 'ASC'
);
$categories=get_categories($args);
  foreach($categories as $category) {
	echo '<p>Category: <a href="' . get_category_link( $category->term_id ) . '" title="' . sprintf( __( "View all posts in %s" ), $category->name ) . '" ' . '>' . $category->name.'</a> </p> ';
	echo '<img> url картинка '</img>';
	echo '<p> Description:'. $category->description . '</p>';
	echo '<p> Post Count: '. $category->count . '</p>';  }
?>
kolshix 10 месяцев назад

сейчас все работает через такой код
Не нравится:
1 адрес получается (можно ли без вопросительного знака?)
http://site.ru/allcategory/?cpage=2

Проверьте и подправьте пожалуйста (код рабочий и за нагрузку на сервер не беспокоюсь, но всегда стараюсь смотреть в сторону оптимизации)

<?php /* edit Kolshix for category paginate */
	$args = array(            
			'orderby' =>'date',
			'exclude' =>'1', // убираем стандартную таксу
			'order' =>'ASC'
	);

	$categories = get_categories($args);
	$numOfItems = 12; // исключить
	$page = isset( $_GET['cpage'] ) ? abs( (int) $_GET['cpage'] ) : 1;
	$to = $page * $numOfItems ;
	$current = $to - $numOfItems; //
	$total = sizeof($categories);
?>

<div id="ns-main">            
<?php 
	for ($i=$current; $i<$to; ++$i) {
			$category = $categories[$i];

?>

<div class="ns-wrap">  
<?php 
	if ($category->name == ''){
		echo '</div>';
		//break;
		continue;
	}
		// echo '' . $i                  .'';
		// echo '' . $category->name     .'';
		// echo '' . $category->term_id  .'';
		// echo '<a href="' . get_term_link($category->slug, 'categories') . '">' . $category->name     .'</a>';
	$url = get_category_link( $category->term_id );

		echo '<div class="post-three-cat-celeb"><p><a href="' . $url . '" title="' . sprintf( __( "View all posts in %s" ), $category->name ) . '" ' . '>' . $category->name.'</a> </p> '; 
	$phot_imgceleb = get_term_meta( $category->term_id , 'phot_imgceleb', true);
	echo '<a href="' . $url . '"><img  width="273" height="400" class="phot_imgceleb" src="' . $phot_imgceleb . '" alt="' . $category->name.'" title="' . $category->name.' "></a></div>';
 ?>
</div> 
<?php }  ?> 
</div>

<div class="post-nav">
	<div id="wp_pagination">    
<?php
unset($category);
echo paginate_links( array(
	'base' => add_query_arg( 'cpage', '%#%' ),
	'format' => '',
	'prev_text' => __('«'),
	'next_text' => __('»'),
	'total' => ceil($total / $numOfItems),
	'current' => $page
  ));

?>

</div>
shevan 10 месяцев назад
$page = ( get_query_var( 'paged' ) ) ? get_query_var( 'paged' ) : 1;

Погугли get_categories pagination, найдешь в первых ссылках несколько примеров готовых, которые сможешь протестировать и выбрать лучший

kolshix 10 месяцев назад

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

0
kolshix125 10 месяцев назад

Нет ответов на этот вопрос.

На вопросы могут отвечать только зарегистрированные пользователи. Регистрация. Вход.