Домой Wp-Recall WP-Recall: Проблемы и решения Проблема с отображением информации во вкладке Публикации
14ответ(ов) в теме
bek
не в сети 4 года
На сайте с 10.12.2013
Участник
Тем 14
Сообщения 46
1
21:48
Версия WP-Recall: 16.15.5

Столкнулся со следующим багом: если выставить по умолчанию вкладку Публикации, то при переходе в профиль пользователя author/user12/ ничего не отображается. Если затем кликнуть на вкладку Публикации (author/user12/?tab=publics), то появится надпись: Публикации пока не было опубликовано.

Вопрос: как сделать, чтобы при переходе в профиль пользователя выводился определенный контент (хотя бы тот же текст Публикации пока не было опубликовано), если у этого пользователя еще нет ни одной записи, но так, чтобы не приходилось еще раз кликать на вкладку Публикации.

И какой файл нужно перенести и куда (wp-content/wp-recall/...) для последующей правки, чтобы будущие обновления не затерли?

0
Вова (Otshelnik-Fm)
не в сети 1 неделя
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18653
2
22:04

Не могу повторить.
Поставил вкладку эту первой в менеджере вкладок
Перехожу в свой ЛК мой-сайт/author/wawan/ - вижу публикации

Захожу в кабинет юзера у которого публикаций нет:

Вы не можете просматривать опубликованные ссылки

Что не так? Давайте ссылку на проблему, давайте скрины общих настроек плагина

И какой файл нужно перенести и куда (wp-content/wp-recall/...) для последующей правки, чтобы будущие обновления не затерли?

- какой и куда? А для чего? - в вашем вопросе нет конкретики. Или мне кажется что я на ваш вопрос уже отвечал

Вы не можете просматривать опубликованные ссылки

??

Не стоит в одной теме смешивать баг - его в ней и будем разбирать и еще вопрос по настройке. На каждый вопрос свою тему на форуме создавайте.

0
bek
не в сети 4 года
На сайте с 10.12.2013
Участник
Тем 14
Сообщения 46
3
22:26

Какой файл нужно править, который отвечает за заглушку, когда у пользователя нет записей? В файле posts-list.php я не нашел Публикации пока не было опубликовано, где я могу править этот текст или вместо него вставить что-то другое?

0
Вова (Otshelnik-Fm)
не в сети 1 неделя
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18653
4
22:33

wp-recall/add-on/publicpost/classes/class-rcl-post-list.php

т.к. кроме публикаций могут быть другие типы записей

Так что по проблеме вашей? Я всё расписал за зря?

0
bek
не в сети 4 года
На сайте с 10.12.2013
Участник
Тем 14
Сообщения 46
5
22:36

Проблема заключается, что я полностью кастомизировал файл posts-list.php. Оставил такой код:
<?php global $post,$posts,$ratings; ?> <div class="publics-table-rcl rcl-form"> <?php foreach($posts as $postdata){ ?> <?php foreach($postdata as $post){ setup_postdata($post); ?> <?php if($post->post_status=='pending') $status = '<span class="status-pending">'.__('to be approved','wp-recall').'</span>'; elseif($post->post_status=='trash') $status = '<span class="status-pending">'.__('deleted','wp-recall').'</span>'; elseif($post->post_status=='draft') $status = '<span class="status-draft">'.__('draft','wp-recall').'</span>'; else $status = '<span class="status-publish">'.__('published','wp-recall').'</span>'; ?> <tr> <div id="post-<?php the_ID(); ?>" <?php post_class('post'); ?>> Здесь вывод записей... </div><!-- /.post --> </tr> <?php } ?> <?php } ?> </div>

А вот что скопировать из оригинального posts-list.php, когда нет записей - не пойму 🙁

Редакции сообщения
22.06.2018 22:37bekПричина: не указано
0
bek
не в сети 4 года
На сайте с 10.12.2013
Участник
Тем 14
Сообщения 46
6
22:41

Если перенести class-rcl-post-list.php в папку wp-content/wp-recall/add-on/publicpost/classes/ и там править - так сработает?

0
bek
не в сети 4 года
На сайте с 10.12.2013
Участник
Тем 14
Сообщения 46
7
23:41

Опытным путем выяснил, что проблема заключалась в следующем: если стоит по умолчанию вкладка Публикации и нет других публичных вкладок, то тогда ничего выводится. Если добавить еще вкладку, тогда прекрасно выводится: Публикации пока не было опубликовано. Так что, видимо, это все таки баг.

0
bek
не в сети 4 года
На сайте с 10.12.2013
Участник
Тем 14
Сообщения 46
8
23:44

bek сказал(а)
Если перенести class-rcl-post-list.php в папку wp-content/wp-recall/add-on/publicpost/classes/ и там править - так сработает?

Не сработало. Вопрос остается открытым: где я могу отредактировать/заменить вывод заглушки Публикации пока не было опубликовано так, чтобы будущие обновления не затерли?

ПС А вообще, конечно, логично и правильнее сделать в самом файле posts-list.php вывод заглушки, когда нет записей.

Редакции сообщения
22.06.2018 23:51bekПричина: не указано
22.06.2018 23:51bekПричина: не указано
0
Вова (Otshelnik-Fm)
не в сети 1 неделя
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18653
9
00:35

bek сказал(а)
Если перенести class-rcl-post-list.php в папку wp-content/wp-recall/add-on/publicpost/classes/ и там править - так сработает?

нет. Это не шаблон WP-Recall. Это класс php. Все шаблоны описаны тут

Вы не можете просматривать опубликованные ссылки

Вопрос остается открытым: где я могу отредактировать/заменить вывод заглушки Публикации пока не было опубликовано так, чтобы будущие обновления не затерли?

Я давал вам ответ выше. Только тут wp-recall/add-on/publicpost/classes/class-rcl-post-list.php
или используя замену и компиляцию в языковом файле. Но как это сделать - вам не подскажу.

ПС А вообще, конечно, логично и правильнее сделать в самом файле posts-list.php вывод заглушки, когда нет записей.

- он выводит именно список записей. Делать шаблон на одну фразу - это бред.
Чем вас не устраивает фраза?

0
bek
не в сети 4 года
На сайте с 10.12.2013
Участник
Тем 14
Сообщения 46
10
00:49

Только тут wp-recall/add-on/publicpost/classes/class-rcl-post-list.php
или используя замену и компиляцию в языковом файле. Но как это сделать - вам не подскажу.

Т.е. получается я никак не могу заменить текст на свой, чтобы он затерся при обновлении. Это плохо. Я, к примеру, хотел вместо текста ссылку сделать на форму публикации.

он выводит именно список записей. Делать шаблон на одну фразу - это бред.
Чем вас не устраивает фраза?

Ну archive.php тоже выводит список записей, и там есть возможность задать свой код, если нет записей. И зачем делать отдельный шаблон, если можно всунуть <?php else : ?> <div>Нет записей</div>. Да и к примеру, если я хочу именно уникальный текст для списка записей, как мне быть? Походу никак 🙁

0
Вова (Otshelnik-Fm)
не в сети 1 неделя
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18653
11
10:54

Ну archive.php тоже выводит список записей, и там есть возможность задать свой код, если нет записей.

А теперь представьте что у вас ВП тема стоит и вы к ней скачали дочернюю тему. Как вы в archive.php поменяете фразу тогда?

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

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

0
Вова (Otshelnik-Fm)
не в сети 1 неделя
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18653
12
15:56

bek сказал(а)
Т.е. получается я никак не могу заменить текст на свой, чтобы он затерся при обновлении. Это плохо. Я, к примеру, хотел вместо текста ссылку сделать на форму публикации.

В общем я вас ввел в заблуждение несколько... Ну про плагины переводов я был прав. Но еще в ядре ВП есть фильтр gettext

function otfm_retranslate_empty_postlist( $translation, $text, $domain ){
    if($domain !== 'wp-recall') return $translation;
    if($translation === 'пока не было опубликовано') return '- пока не было опубликовано. <a href="ссылка">Опубликовать запись!</a>';

	return $translation;
}
add_filter( 'gettext', 'otfm_retranslate_empty_postlist', 10000, 3 );

Функция работает

Вы не можете просматривать опубликованные ссылки

Только в общих настройках реколл (включить расширенные опции) - надо убедиться что реколл кеширование отключено. Я запамятовал и полчаса бился с "ветряными мельницами" ((

Также есть глобальная переменная в вордпресс global $l10n; - в ней содержится объект переводов. Можно и напрямую в нем заменить то что надо

Например так:

$l10n['wp-recall']->entries['has not yet been published']->translations[0] = 'пока не было опубликовано <a href="">Опубликовать запись</a>';

но это несколько костыльный метод. Лучше использовать доступ через специальный ВП фильтр.

Так что ваша задача решается средствами самого вордпресса.

2
bek
не в сети 4 года
На сайте с 10.12.2013
Участник
Тем 14
Сообщения 46
13
21:59

Otshelnik-Fm, большое спасибо за помощь, почти идеально!
А как убрать слово Публикации, просто оставить

Вы не можете просматривать опубликованные ссылки

?

Потому как такой код не срабаотывает:
if($translation === 'Публикации пока не было опубликовано') return '<a href="ссылка">Опубликовать запись!</a>';

0
Вова (Otshelnik-Fm)
не в сети 1 неделя
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18653
14
22:31

bek сказал(а)
Потому как такой код не срабаотывает:

Потому что такой целой фразы в плагине нет. Это набор из двух строк перевода.

Вникайте в работу вордпресс фильтра gettext или оставляйте как я вам предложил.

0
Тема закрыта. Публикация новых сообщений запрещена.