Я хочу, чтобы частные сообщения (для тех, кто не вошел в систему) использовали шаблон single.php
же, как и публичные сообщения, в настоящий момент они переходят к шаблону 404.php
.
Я хорошо просмотрел основные файлы, но не могу найти, где происходит изменение шаблона (обратите внимание: это не перенаправление).
Может ли кто-нибудь помочь?
редактировать
Чтобы объяснить, почему я хочу этого, я хочу, чтобы все посетители просмотрели предварительный просмотр содержимого, но вошли в «члены», чтобы увидеть весь контент.
Согласно странице « Видимость контента» , частные сообщения видны только тем, у кого есть достаточные уровни разрешений. WordPress не предоставляет их пользователям без регистрации, поэтому (предположительно) 404
.
Если вы хотите отобразить ограниченный предварительный просмотр для нечленов, вместо того, чтобы устанавливать сообщение в Private , вы можете попробовать что-то вроде этого:
add_filter( 'the_content', 'wpse101968_preview' ); function wpse101968_preview( $content ) { if( is_single() ) { if( ! is_user_logged_in() ) { $content = get_the_excerpt(); } } return $content; }
И тогда ваши посетители без входа будут видеть отрывок сообщения, а не весь пост. Вы также можете настроить выдержки, чтобы они видели только то, что вы хотите видеть.
Кодекс:
is_user_logged_in()
get_the_excerpt()
Вы не видите перенаправление, чтобы подтвердить свое собственное наблюдение, так как вы видите, как он выглядит: «Файл не найден». Взгляните на запрос в источнике по строке 2438 (среди прочего) . Статус сообщения является частью самого запроса, поэтому, если статус не соответствует, то сообщения не найдены, а это означает 404
. Как видно из кода, status
довольно жестко защищен. Это трудно переопределить.
Я бы рекомендовал использовать настраиваемый тип сообщений для сообщений «только для входа». Это будет намного легче контролировать как на переднем, так и на заднем конце.