Ответы в темах

Просмотр 15 ответов — с 46 по 60 (всего 140)
  • Код не работает, с ним посты выводятся просто на одной странице, пагинация тоже есть, но она неработает

    Он применяется для всех страниц с выводом wp_query ?
    Просто у меня есть много страниц, где используется wp_query и там ничего ограничивать ненужно.
    По сути, тут подойдет вариант, чтобы ограничить пагинацию, постов может выводиться сколько угодно, но страниц, чтобы было только 10. Тогда пользователи просто не смогут увидеть лишнего)

    'posts_per_page' => 10, Выводит 10 постов на одной странице. Я хочу выводить по 10 постов на 1 странице, но чтобы в общей суме выводилось только 100 постов — то есть 10 страниц с постами. Другими словами ТОП 100 постов с пагинацией.

    Я уже вера побывал переделать вывод под pre_get_posts, но что-то не получилось. Может Вы подскажите.
    Возможно тогда можно будет добавить параметр 'numberposts' => 100,

    разобрался, вместо category указал имя метки

    В рубриках работает, а вот в таксономии не хочет…
    У меня есть таксономия актеры, хотел выводить на странице каждого актера количество записей, возможно дело в старой версии ВП, у меня 4,3

    $term_id = get_queried_object_id();   
    $term = get_term( $term_id, 'category' );//for example uncategorized category
    echo 'count: '. $term->count;

    да, к примеру в таксономии 20 записей, нужно вывести число 20

    Автор rootey

    (@rootey)

      Вот скажите, интереса ради, какую цель вы преследуете? Ну кроме «красявостей»

    Где-то прочитал, что такие урл больше нравятся поисковикам, вот и добавил код, сейчас я бы и рад его убрать, но как на это отреагируют поисковики непонятно.

    Автор rootey

    (@rootey)

    Нагрузка на ЧТО? Где и как это видно?
    В плагине «горят» какие-то данные? Вот кликайте на них.

    Нагрузка на хостинг, это видно в ЛК хостинга на графике, где показывается полоска доступных ресурсов по выбранному тарифу. Убрал код который показал выше сразу и нагрузка упала примерно в двое.

    • Ответ изменён 9 лет назад пользователем rootey.
    Автор rootey

    (@rootey)

    Вот есть код, давно еще в интернете нашел. добавляет в конце ссылки /
    Он походу нагружает сильно.
    выглядит вот так

    /* Добавляет слеш в конце URL */
    function pcl_smart_trailingslashit($string) {
    	$string = rtrim($string, '/') . '/';
    	if ( 0 < preg_match("#\.[^/]+/$#", $string) ) {
    		$string = rtrim($string, '/');
    	}
    	return $string;
    }
    add_filter('user_trailingslashit', 'pcl_smart_trailingslashit');

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

    Может может есть аналог какой-то, чтобы слеш вывести?

    Автор rootey

    (@rootey)

    Перешел на более дорогой тариф генерация страницы 0,289 sec. В целом работает неплохо, но на что стоит обратить внимание в плагине который вы посоветовали, там очень много данных. нагрузка по прежнему высокая.

    Автор rootey

    (@rootey)

    Воспользовался вашим кодом, спасибо. вот какой результат
    SQL 69 1,957 sec 18048 Kb

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

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

    Вопрос был не об этом, как вывести нужное количество символов я знаю.
    Вывожу вот так
    <meta itemprop="description" content='<?php $my_post_obj = get_post( $my_post_id ); echo wp_trim_words( $my_post_obj->post_content, 40, false ); ?>' />

    Тут дело в другом, у меня есть статьи у которых нет текста, в таком случаи, выводится пустой тег
    <meta itemprop="description" content='' />
    Как скрыть этот тег для записей без текста? Нужно задать условие, но как

    Автор rootey

    (@rootey)

    Это не совсем просто select. Он должен одновременно несколько параметров из выпадающего списка выбирать

    		<div class="select_block">
    			<select data-placeholder="Выберите год" class="chosen-select" multiple style="width: 100%;" name="tax_god[]">
    		<?php
    
    		foreach($god as $keys=>$val): ?>
    				<?php $selected =($keys == $tax_god) ? 'selected' : ''; ?>
    				 <option <?=$selected?> value="<?=$keys;?>"><?=$val;?></option>
    		<?php endforeach; ?>	
    			</select>
    		</div>

    Если ввыводить вот такой ссылкой, то пагинация работает,
    /favorit/?preview=true
    /favorit/?preview=true&page=2

    Вот собственно функция вывода вывода статей

    //Пагинация
    $perpage = 5;
    $count_fav = count($favorites);
    $count_pages = ceil($count_fav / $perpage);
    
    	// если число страниц равно 0
    if(!$count_pages) $count_pages = 1;
    // получаем номер страницы
    if( isset($_GET['page']) ){
    	$page = (int)$_GET['page'];
    	if( $page < 0 ) $page = 1;
    }else{
    	$page = 1;
    }
    // если запрошенная страница больше максимума
    if( $page > $count_pages ) $page = $count_pages;
    
    // первая картинка на страницу
    $start_pos = ($page - 1) * $perpage;
    // последняя картинка на страницу
    $end_pos = $start_pos + $perpage;
    // если последняя картинка больше максимума картинок
    if( $end_pos > $count_fav ) $end_pos = $count_fav;
    
    // получаем пагинацию
    $pagination = pagination($page, $count_pages);
    
    if (!$favorites){
    	echo '<p>Список пуст</p>';
    	return;
    }
    echo '<ul class="fav-list">';
    for($j = $start_pos; $j < $end_pos; $j++):
    $image_attributes = wp_get_attachment_image_src(get_post_thumbnail_id($favorites[$j]), 'thumbnail');
    	echo '<li><a href="'.get_permalink($favorites[$j]).'"><img src="'.$image_attributes[0].'" alt="" />'.get_the_title($favorites[$j]).'<span class="del-link" data-post="'. $favorites[$j] .'" >❎</span></a>
    
    	<span class="fav-load"><img  src="'.$src_img.'" alt="" /></span>
    	</li>';
    endfor;
    echo '</ul>';
    if( $count_pages > 1 ):
    echo $output . '<div class="clear"></div><div class="pagination">'
    .$pagination. '</div>';
    endif;
    }

    Вот сама пагинация

    function pagination($page, $count_pages, $modrew = false){
    	// << < 3 4 5 6 7 > >>
    	$back = null; // ссылка НАЗАД
    	$forward = null; // ссылка ВПЕРЕД
    	$startpage = null; // ссылка В НАЧАЛО
    	$endpage = null; // ссылка В КОНЕЦ
    	$page2left = null; // вторая страница слева
    	$page1left = null; // первая страница слева
    	$page2right = null; // вторая страница справа
    	$page1right = null; // первая страница справа
    
    	$uri = "?";
    	if(!$modrew){
    		// если есть параметры в запросе
    		if( $_SERVER['QUERY_STRING'] ){
    			foreach ($_GET as $key => $value) {
    				if( $key != 'page' ) $uri .= "{$key}=$value&";
    			}
    		}
    	}else{
    		$url = $_SERVER['REQUEST_URI'];
    		$url = explode("?", $url);
    		if(isset($url[1]) && $url[1] != ''){
    			$params = explode("&", $url[1]);
    			foreach($params as $param){
    				if(!preg_match("#page=#", $param)) $uri .= "{$param}&";
    			}
    		}
    	}
    
    	if( $page > 1 ){
    		$back = "<a class='nav-link' data-page='".($page-1)."' href='{$uri}page=" .($page-1). "'><</a>";
    	}
    	if( $page < $count_pages ){
    		$forward = "<a class='nav-link' data-page='".($page+1)."' href='{$uri}page=" .($page+1). "'>></a>";
    	}
    	if( $page > 3 ){
    		$startpage = "<a class='nav-link' data-page='1' href='{$uri}page=1'>&laquo;</a>";
    	}
    	if( $page < ($count_pages - 2) ){
    		$endpage = "<a class='nav-link' data-page='".$count_pages."' href='{$uri}page={$count_pages}'>&raquo;</a>";
    	}
    	if( $page - 2 > 0 ){
    		$page2left = "<a class='nav-link' data-page='".($page-2)."' href='{$uri}page=" .($page-2). "'>" .($page-2). "</a>";
    	}
    	if( $page - 1 > 0 ){
    		$page1left = "<a class='nav-link' data-page='".($page-1)."' href='{$uri}page=" .($page-1). "'>" .($page-1). "</a>";
    	}
    	if( $page + 1 <= $count_pages ){
    		$page1right = "<a class='nav-link' data-page='".($page+1)."' href='{$uri}page=" .($page+1). "'>" .($page+1). "</a>";
    	}
    	if( $page + 2 <= $count_pages ){
    		$page2right = "<a class='nav-link' data-page='".($page+2)."' href='{$uri}page=" .($page+2). "'>" .($page+2). "</a>";
    	}
    
    	return $startpage.$back.$page2left.$page1left.'<a class="nav-active">'.$page.'</a>'.$page1right.$page2right.$forward.$endpage;
    }
    
    function portfolio_page_template( $template ) {
    	if( is_page('portfolio')  ){
    		if ( $new_template = locate_template( array( 'portfolio-page-template.php' ) ) )
    			$template =  $new_template ;
    	}
    
    	return $template;
    }
    add_filter( 'template_include', 'portfolio_page_template', 99 );

Просмотр 15 ответов — с 46 по 60 (всего 140)