Как отключить доступ к страницам категорий

9 сент. 2014 г., 12:18:50
Просмотры: 16.4K
Голосов: 2

Я хочу, чтобы мои категории оставались активными, но при этом сделать страницы категорий недоступными. Возможно ли это? Если да, то как?

Зачем мне это нужно? (Возможно, это поможет понять ситуацию)

Я работаю над UGC-сайтом. Мне нужно изменить URL категорий с /category/cat-name на /cat-name. Также требуется добавить страницу /cat-name/add, где пользователи смогут публиковать контент только в определенной категории. Однако нельзя создать страницу /cat-name/add, пока не будет существовать страница (не страница категории) /cat-name. Если я создам страницу /cat-name, она будет конфликтовать со страницей категории /cat-name. Поэтому я подумал отключить страницу категории /cat-name и использовать обычную страницу /cat-name для вывода постов категории.

4
Комментарии

Хотите, чтобы категории были активны для организации в административной части сайта, но не отображались на фронтенде? Возможно, стоит добавить немного больше деталей о вашей проблеме.

Chris Morris Chris Morris
9 сент. 2014 г. 12:32:02

@ChrisMorris, помогло ли обновление? И... Нормально, если страницы категорий недоступны в административной части...

Tabrez Ahmed Tabrez Ahmed
9 сент. 2014 г. 12:49:30

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

Chris Morris Chris Morris
9 сент. 2014 г. 12:53:40

@ChrisMorris, Надеюсь, обновление ответа на вопрос решило ваш вопрос.

Tabrez Ahmed Tabrez Ahmed
9 сент. 2014 г. 13:20:39
Все ответы на вопрос 2
4

Вы можете добавить что-то подобное в ваш файл category.php.

if ( ! is_admin() ) {
     wp_redirect( home_url() );
     exit;
}

Это перенаправит посетителей на главную страницу сайта, но страницы категорий останутся активными и доступными только для администраторов.

9 сент. 2014 г. 12:28:15
Комментарии

редактирование файлов WP не входит в мои полномочия...

Tabrez Ahmed Tabrez Ahmed
9 сент. 2014 г. 12:52:12

Надеюсь, обновление вопроса поможет...

Tabrez Ahmed Tabrez Ahmed
9 сент. 2014 г. 12:52:28

category.php - это файл темы, а не ядра. (предполагаю, что вы имели в виду "файлы WP")

totels totels
9 сент. 2014 г. 12:56:12

Упс, извините. Но я подумал, что реализую кросс-тематическое решение.

Tabrez Ahmed Tabrez Ahmed
9 сент. 2014 г. 13:24:32
0

Вам потребуется выполнить как минимум два действия (возможно больше, я не продумал это до конца), в самой простой форме:

  1. Запретить вывод ссылок в списках категорий:

    Вам нужно будет эмулировать функцию get_the_category_list() и создать собственный список категорий без якорей, или же можно просто отфильтровать теги <a>:

    add_filter( 'the_category', function ( $thelist, $sep, $parents ) {
      return strip_tags( $thelist, '<ul><li>' );
    } );
    
  2. Перенаправлять URL категорий куда-то.

    category.php

    <?php wp_redirect( home_url() );
    
9 сент. 2014 г. 12:54:29