WP доступ разным группам пользователей

ks_dp
На сайте с 26.01.2009
Offline
126
1482

Здравствуйте. Есть задача, которую уже не могу решить несколько дней. На Вордпрессе.

Есть категория с превью. Как обычно, стоит кнопка далее на полную новость.

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

Скрыть текст получается плагином, но произвольные поля всё равно остаются доступны всем.

Role Scoper, как я понял, просто скрывает посты в категориях, если прав у юзера недостаточно. А нужно не скрывать, а отдавать превью всё равно.

:confused:

Посоветуйте решение, пожалуйста.

!
P
На сайте с 21.01.2012
Offline
72
#1

А что, если на странице категории оставить все как есть (превьюшки, как я понял, видят все)

А на странице записи (single.php)

Заменить:

<?php the_content(); ?>

На:

<?php 

if (current_user_can(тут имя группы)) {
the_content(); }
else { ?>
Для просмотра содержимого необходимо зарегистрироваться <?php } ?>

Если такой подход нужен только к определенным категориям, а не ко всем - тогда используем отдельные шаблоны, вида: category-123.php где 123 - ID категории

ks_dp
На сайте с 26.01.2009
Offline
126
#2
Preci:

<?php 

if (current_user_can(тут имя группы)) {
the_content(); }
else { ?>
Для просмотра содержимого необходимо зарегистрироваться <?php } ?>

Спасибо, потестил. Опять-таки, здесь скрыт только текст. А ещё нужно скрыть порядка пяти произвольных полей the_field();

Да и группы нужно, как минимум, две: администраторы + спецгруппа.

P
На сайте с 21.01.2012
Offline
72
#3
ks_dp:
Спасибо, потестил. Опять-таки, здесь скрыт только текст. А ещё нужно скрыть порядка пяти произвольных полей the_field();

Да и группы нужно, как минимум, две: администраторы + спецгруппа.

http://wp-kama.ru/function/current_user_can

Берем функцию из заметки. И используем:

<?php if ( appthemes_check_user_role( 'группа 1' ) OR appthemes_check_user_role( 'группа 2' )) {

the_content(); }
else {
echo "У вас нет доступа"; } ?>

the_field(); оборачиваем в то же самое.

ks_dp
На сайте с 26.01.2009
Offline
126
#4

Спасибо.

Заработало вот так (current_user_can('группа1') OR ('группа2'))

ks_dp
На сайте с 26.01.2009
Offline
126
#5

Появилась новая задача. Заранее спасибо за ответы.

Имеем

<?php

if ( in_category( array('one') ) ) {

include 'single-one.php';

} elseif ( in_category( array('two') ) ) {

include 'single-two.php';

} else {

include 'single-all.php';

}

?>

Нужно в конструкцию

} elseif ( in_category( array('two') ) ) {

include 'single-two.php';

следующая формула: инклюдится, если категория 'two' или 'one' в сочетании с тегом 'red' или 'blue'

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