Домой Wp-Recall WP-Recall: Проблемы и решения Ошибочная ссылка редактирования записи в "блоге" (ленте записей)
21ответ(ов) в теме
dm1
не в сети 2 года
На сайте с 07.12.2018
Участник
Тем 55
Сообщения 306
1
22:03
Версия WP-Recall: 16.17.2

Добрый день.

Если перейти на стандартную (для WP) страницу "Блог" (лента записей), то значок (ссылка) "Редактировать" для каждой записи ведет на редактирование исключительно последней записи.

Кнопка "Редактировать" принадлежит WP Recall.

Где в коде можно поправить этот момент, чтобы кнопка "Редактировать" у каждой записи вела к редактированию именно этой записи?

Спасибо.

0
Preci
не в сети 2 месяца
На сайте с 11.11.2014
Участник
Тем 71
Сообщения 1644
2
22:13

Какой именно код выводит ленту записей? Что бы корректно выводилась ссылка на редактирование, в цикле вывода записей должна быть установлена глобальная переменная $post, из нее берется id поста и формируется ссылка на редактирование.

Вы не можете просматривать опубликованные ссылки
0
dm1
не в сети 2 года
На сайте с 07.12.2018
Участник
Тем 55
Сообщения 306
3
22:18

Какой именно код выводит ленту записей?

Я не программист 🙂 Поэтому даже вопроса не понял. Стандартный вывод ленты блога wordpress. Там есть вариант на главной странице, есть - на отдельной. Вот на отдельной и выбран.

0
Preci
не в сети 2 месяца
На сайте с 11.11.2014
Участник
Тем 71
Сообщения 1644
4
22:27

Ну кнопку редактирования выводит /wp-content/plugins/wp-recall/add-on/publicpost/index.php:247-285

get_edit_post_link( $post->ID )

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

0
dm1
не в сети 2 года
На сайте с 07.12.2018
Участник
Тем 55
Сообщения 306
5
22:34

у вас реализовано и от этого отталкиваться

Уточню. "У вас" это где? В моей теме? Потому что я думал, что это стандартная для WordPress и WP Recall вещь и здесь просто подскажут, как это исправить в WP Recall. Стандартно.

Редакции сообщения
05.04.2019 22:41dm1Причина: не указано
0
Preci
не в сети 2 месяца
На сайте с 11.11.2014
Участник
Тем 71
Сообщения 1644
6
23:08

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

Я вам показал как эта ссылка формируется. Это стандартная функция wordpress.

Что бы знать какую ссылку выводить, надо знать какой на данный момент пост обрабатывается, для этого в темах wordpress во время цикла вывода записей устанавливают глобальную переменную, в которую записывают данные обрабатываемого в данный момент поста.

Из этого следует что на 99.99% проблема в вашей теме. Смотрите код вывода записей в шаблоне для проблемной странице. Там должно быть упоминание setup_postdata() или the_post()

0
dm1
не в сети 2 года
На сайте с 07.12.2018
Участник
Тем 55
Сообщения 306
7
00:06

То есть то, что формат ссылки "rcl-postedit" роли не играет?

0
dm1
не в сети 2 года
На сайте с 07.12.2018
Участник
Тем 55
Сообщения 306
8
00:10

Ситуация интереснее.

На первой странице ленты блога при наведении на кнопку редактирования ссылка ведёт на редактирование последнего поста этой страницы блога. То есть условно 10 записей и у всех кнопка редактирования (из блога) ведёт на редактирование последней записи этой страницы блога.

Для каждой страницы блога - своя ссылка. Если страниц 5, то кнопка редактирования (на странице блога) каждых 10 записей ведет на только на 1 из этих 10 страниц (последнюю).

0
Preci
не в сети 2 месяца
На сайте с 11.11.2014
Участник
Тем 71
Сообщения 1644
9
00:52

Вообщем ради вас я просмотрел весь код и все дело в том, что на странице категории кнопка редактирования и не должна выводиться. Видимо вы там выводите весь контент поста через the_content() или сами как-то добавили вывод это кнопки. Обычно на странице категории выводится the_excerpt() или аналоги.

так что тут либо править ядро, либо Андрей внесет изменения.

А вообще ссылку на редактирование внутри цикла можно получить так:

get_edit_post_link( $post->ID )

p.s. Андрей, что за экш такой? Фильтр же?
add_action( 'the_content', 'rcl_post_bar', 999 );

Вы не можете просматривать опубликованные ссылки
0
Андрей CS
не в сети 8 часов
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16928
10
08:16

Preci сказал(а)
Андрей, что за экш такой? Фильтр же?

точно, фильтр должен быть и как то работало же) ок, спасибо, поправлю в ближайшем обновлении

0
dm1
не в сети 2 года
На сайте с 07.12.2018
Участник
Тем 55
Сообщения 306
11
12:43

на странице категории кнопка редактирования и не должна выводиться

На странице категории у меня и не такой кнопки. Она есть на странице "блога" (стандартной WP-ленты записей) возле каждой записи.

0
dm1
не в сети 2 года
На сайте с 07.12.2018
Участник
Тем 55
Сообщения 306
12
12:44

точно, фильтр должен быть и как то работало же) ок, спасибо, поправлю в ближайшем обновлении

Андрей, можно ли сейчас где-то в коде что-то поправить, чтобы редактирование нормально открывалось из ленты записей (блога)?

0
Preci
не в сети 2 месяца
На сайте с 11.11.2014
Участник
Тем 71
Сообщения 1644
13
12:46

Я все равно не понимаю что за страница "блога". Это категория с названием "блог" или что? Как мне получить такую ленту записей на тестовом сайте?

0
dm1
не в сети 2 года
На сайте с 07.12.2018
Участник
Тем 55
Сообщения 306
14
22:57

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

Ошибка именно с ссылкой формата rcl-postedit, то есть WP Recall здесь точно участвует.

0
Preci
не в сети 2 месяца
На сайте с 11.11.2014
Участник
Тем 71
Сообщения 1644
15
23:17

т.е. вы в wordpress в Настройки->Чтение в опции "На главной странице отображать" указали:
Статическую страницу и выбрали в выпадающем меню Страница записей какую-то страницу. И тогда если перейти на страницу которую вы выбрали, то там выводятся кнопки редактирования?

Я так сделал и у меня не появились кнопки.

0
dm1
не в сети 2 года
На сайте с 07.12.2018
Участник
Тем 55
Сообщения 306
16
12:15

Я так сделал и у меня не появились кнопки.

Мы уже на нескольких ПК и на разных темах проверили. Всё выводится таким образом.

Возможно, в настройках публикации WP Recall у Вас что-то иначе.

А страницу для создания новой записи Вы выводите через [rcl-postedit]?

0
Вова (Otshelnik-Fm)
не в сети 6 часов
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18654
17
13:07

Если бы вы дали по шагам как повторить этот баг - вопрос решился быстрей. Если вы на разных пк и темах проверяли - значит уже у вас есть план проверки. А нам остается только гадать.

0
Preci
не в сети 2 месяца
На сайте с 11.11.2014
Участник
Тем 71
Сообщения 1644
18
13:20

Otshelnik-Fm сказал(а)
Если бы вы дали по шагам как повторить этот баг - вопрос решился быстрей. Если вы на разных пк и темах проверяли - значит уже у вас есть план проверки. А нам остается только гадать.

Проблема если на странице категории контент выводится через the_content(); как в теме Twenty Fourteen, там по хорошему вообще надо переписать функцию которая устанавливает post_bar, ибо она делает это через глобальную переменную $rcl_post_bar и получается что в нее на странице категории записывается только 1 пост.
Ну или вообще как в закладках сделать проверку одиночная запись или нет, ибо закладки в категориях не выводятся даже если там используется the_content();
Но мне кажется надо отказываться от глобальной переменной $rcl_post_bar

0
dm1
не в сети 2 года
На сайте с 07.12.2018
Участник
Тем 55
Сообщения 306
19
11:47

Проблема если на странице категории контент выводится через the_content()

Спасибо, что всё описали понятным для разработчиков языком.

0
dm1
не в сети 2 года
На сайте с 07.12.2018
Участник
Тем 55
Сообщения 306
20
20:56

Подскажите, а как-то можно решить данную проблему?

Правкой кода.

0
Андрей CS
не в сети 8 часов
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16928
21
20:59

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

0
Вы не имеете права на публикацию сообщений в этой теме