Спрашиваем и отвечаем по Wordpress-5

AB
На сайте с 25.08.2012
Offline
80
#611

как быстро и просто сделать следующее на вордпресс:

есть: категории и подкатегории

нужно:

1. при нажатии на любую категорию: увидеть список подкатегорий, если их нет, то увидеть анонсы статей

3. при нажатии на любую подкатегорию: увидеть анносы статей

3. в сайдбаре сделать иерархию типа:

категория 1

подкатегория 1

подкатегория 2

категория 2

подкатегория 1

подкатегория 2

и т.д.

bison
На сайте с 12.11.2008
Offline
178
#612

перенес вп на другой хост, теперь страниц с постом не догружается до конца. внизу такое "возможно, неправильные параметры соединения или СУРБД не запущена"

нужна помощь за денюжку

GA
На сайте с 16.06.2013
Offline
61
#613

для вывода навигации использую код из этого поста

Код:

/*** Альтернатива wp_pagenavi (без лишних обращений к данным) ***/

function kama_pagenavi($before='', $after='', $echo=true) {

/* ================ Настройки ================ */
$text_num_page = ''; // текст для количества страниц. {current} заменится текущей, а {last} последней. Пример: 'Страница {current} из {last}' = Страница 4 из 60
$num_pages = 10; // сколько ссылок показывать
$stepLink = 10; // после навигации ссылки с определенным шагом (значение = число (какой шаг) или '', если не нужно показывать). Пример: 1,2,3...10,20,30
$dotright_text = '…'; // промежуточный текст "до".
$dotright_text2 = '…'; // промежуточный текст "после".
$backtext = '«'; // текст "перейти на предыдущую страницу". Ставим '', если эта ссылка не нужна.
$nexttext = '»'; // текст "перейти на следующую страницу". Ставим '', если эта ссылка не нужна.
$first_page_text = ''; // текст "к первой странице" или ставим '', если вместо текста нужно показать номер страницы.
$last_page_text = ''; // текст "к последней странице" или пишем '', если вместо текста нужно показать номер страницы.
/* ================ Конец Настроек ================ */

global $wp_query;
$posts_per_page = (int) $wp_query->query_vars[posts_per_page];
$paged = (int) $wp_query->query_vars[paged];
$max_page = $wp_query->max_num_pages;

if($max_page <= 1 ) return false; //проверка на надобность в навигации

if(empty($paged) || $paged == 0) $paged = 1;

$pages_to_show = intval($num_pages);
$pages_to_show_minus_1 = $pages_to_show-1;

$half_page_start = floor($pages_to_show_minus_1/2); //сколько ссылок до текущей страницы
$half_page_end = ceil($pages_to_show_minus_1/2); //сколько ссылок после текущей страницы

$start_page = $paged - $half_page_start; //первая страница
$end_page = $paged + $half_page_end; //последняя страница (условно)

if($start_page <= 0) $start_page = 1;
if(($end_page - $start_page) != $pages_to_show_minus_1) $end_page = $start_page + $pages_to_show_minus_1;
if($end_page > $max_page) {
$start_page = $max_page - $pages_to_show_minus_1;
$end_page = (int) $max_page;
}

if($start_page <= 0) $start_page = 1;

$out=''; //выводим навигацию
$out.= $before."<div class='wp-pagenavi'>\n";
if ($text_num_page){
$text_num_page = preg_replace ('!{current}|{last}!','%s',$text_num_page);
$out.= sprintf ("<span class='pages'>$text_num_page</span>",$paged,$max_page);
}

if ($start_page >= 2 && $pages_to_show < $max_page) {
$out.= '<a href="'.rtrim(get_pagenum_link(), '/').'">'. ($first_page_text?$first_page_text:1) .'</a>';
if($dotright_text && $start_page!=2) $out.= '<span class="extend">'.$dotright_text.'</span>';
}

if ($backtext && $paged!=1) $out.= '<a href="'.rtrim(get_pagenum_link(($paged-1)), '/').'">'.$backtext.'</a>';

for($i = $start_page; $i <= $end_page; $i++) {
if($i == $paged) {
$out.= '<span class="current">'.$i.'</span>';
} else {
$out.= '<a href="'.rtrim(get_pagenum_link($i), '/').'">'.$i.'</a>';
}
}

if ($nexttext && $paged!=$end_page) $out.= '<a href="'.get_pagenum_link(($paged+1)).'">'.$nexttext.'</a>';

//ссылки с шагом
if ($stepLink && $end_page < $max_page){
for($i=$end_page+1; $i<=$max_page; $i++) {
if($i % $stepLink == 0 && $i!==$num_pages) {
if (++$dd == 1) $out.= '<span class="extend">'.$dotright_text2.'</span>';
$out.= '<a href="'.get_pagenum_link($i).'">'.$i.'</a>';
}
}
}

if ($end_page < $max_page) {
if($dotright_text && $end_page!=($max_page-1)) $out.= '<span class="extend">'.$dotright_text2.'</span>';
$out.= '<a href="'.get_pagenum_link($max_page).'">'. ($last_page_text?$last_page_text:$max_page) .'</a>';
}

$out.= "</div>".$after."\n";
if ($echo) echo $out;
else return $out;
}

но вот сегодня запустил дебаг и увидел следующие ошибки:

NOTICE: wp-content/themes/wp_stroi/functions.php:18 - Use of undefined constant posts_per_page - assumed 'posts_per_page'
NOTICE: wp-content/themes/wp_stroi/functions.php:19 - Use of undefined constant paged - assumed 'paged'

Я понимаю, что написано в ошибке, но мне это ничего не даёт в плане возможности её исправить. Поэтому прошу помощи у знающих. Подскажите, как и где скорректировать в коде?

[Удален]
#614

Здравствуйте! Столкнулся с такой проблемой. Меняю транслит, который присваивает wordpress адресу записи на число, в результате после сохранения запись отсутствует (404). Пермалинки выставлены - /%category%/%postname%/. Запись находится в категория/подкатегория. Пример: запись, которая работает: domen/cat/podcat/post. Меняю post, к примеру, на 25: domen/cat/podcat/25, запись сохраняется, но по этому адресу её нет.

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

[Удален]
#615
OrkEStr:
Здравствуйте! Столкнулся с такой проблемой. Меняю транслит, который присваивает wordpress адресу записи на число, в результате после сохранения запись отсутствует (404). Пермалинки выставлены - /%category%/%postname%/. Запись находится в категория/подкатегория. Пример: запись, которая работает: domen/cat/podcat/post. Меняю post, к примеру, на 25: domen/cat/podcat/25, запись сохраняется, но по этому адресу её нет.

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

Проблему решил. Прописал пермалинки /%category%/%post_id%/, отключил автосохранение записей и создание ревизий.

GA
На сайте с 16.06.2013
Offline
61
#616

Как отправить посетителя со страниц пагинации /page/N (N-номер страницы) на страницу 404 ошибки?

G
На сайте с 04.01.2010
Offline
32
#617

Здравствуйте !

В вордпрессе новичок - поиском по серчу и инету в целом ответ на свой вопрос не нашел.

На хостинге в каталоге сайта - ...\wp-includes\images\ обнаружил два файла -

icon-up-flag.png - внутри 3 ип-шника

92.112.168.90

92.112.51.25

95.135.31.205

Судя по всему те ип адреса с которых был успешний заход в админку сайта (мои ип адреса).

icon-download.png - внутри в структуре - имя сайта - логин - пароль - ип

статистика попыток захода в админку - видно что пытаются подобрать пароль - фрагмент далее

admin:123456qwerty|188.254.159.178

admin:666666|92.99.213.196

admin:a|92.99.213.196

admin:swordfish|88.227.21.203

admin:ncc1701|88.227.21.203

admin:1qaz2wsx|88.227.21.203

Все бы ничего - но там есть в открытом виде и мои (правильные данные) заходы.

Файлы с хостига удалил, пароль пока не менял.

Что это? Стоит ли переживать? И как бороться?

SeVlad
На сайте с 03.11.2008
Offline
1609
#618
Green arrow:
Как отправить посетителя со страниц пагинации /page/N (N-номер страницы) на страницу 404 ошибки?

Народ в основном хочет избавиться от этого, а ты.. :)

ОК. См в сторону is_paged

gnip:
Что это? Стоит ли переживать? И как бороться?

Где-то шелл. Да. Читать закреплённый топик в соседнем разделе.

Делаю хорошие сайты хорошим людям. Предпочтение коммерческим направлениям. Связь со мной через http://wp.me/P3YHjQ-3.
GA
На сайте с 16.06.2013
Offline
61
#619
SeVlad:
Народ в основном хочет избавиться от этого, а ты.. :)
ОК. См в сторону is_paged

Про этот тег и его подобный $paged знаю, однако не смог вызвать по средствам движка 404 ошибку. решил траблу через редирект на главную.

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

может подскажешь, как можно скажем на страницах архива вызвать 404 ошибку? Проблему я решил по другому, но всё же интересно будет узнать, можно ли, в будущем пригодится.

SeVlad
На сайте с 03.11.2008
Offline
1609
#620
Green arrow:
Про этот тег

Правильнее говорить функция ВП.

Green arrow:
а у меня стояла задача избавиться от любого варианта пагинации на главной

??? То ли я чего-то не понимаю, то ли ты гонишь :) "Стандартно" пагинация главной - самое суть блога и ВП.

Green arrow:
может подскажешь, как можно скажем на страницах архива вызвать 404 ошибку?

Как-то так (не проверял) - в хедер.пхп что-то типа такого:


<?php if((is_day() OR is_month() OR is_year()) AND is_paged() ){
header("HTTP/1.0 404 Not Found");
} ?>

Обрати внимание на на описание is_archive.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий