2016-12-05 8 views
1

У меня есть плагин размещения гостей на моем сайте Wordpress и вы хотите отключить использование коротких кодов для определенных ролей пользователей (например, подписчиков). Мне это нужно по соображениям безопасности в основном.Отключить использование коротких кодов для определенных ролей пользователей

+0

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

+0

Я не совсем уверен. Я думаю, что второй - предотвратить короткие коды извлечения. Таким образом, пользователь может писать shortcode или что-то вроде короткого кода, похожего на [some_text], но он не будет выполнен. Таким образом, короткий код будет похож на текст. – Ted

ответ

0

Предположим, что у вас есть шорткод,

function myshortcode(){ 

$user = wp_get_current_user(); 
if (!in_array('author', (array) $user->roles)) { 
    //Run shortcode 
} 

} 

add_shortcode('myshortcode','myshortcode'); 
+0

Извините, если я просто вас не понимаю, но вы shure, это правильный код, который мне нужен? Потому что, глядя на него, похоже, что это не так. – Ted

+0

то, что активно делать? –

+0

yes, as iunderstand эта проверка роли пользователя, если ее роль не в роли затем выполняется –

0

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

function example_remove_shortcode($content) { 
    $content = strip_shortcodes($content); 
    return $content; 
} 
add_filter('the_content', 'example_remove_shortcode'); 

или

echo strip_shortcodes($my_customly_created_content); 

, где вы хотите показать контент.

+0

Если вы завершаете вторую строку в условном выражении, которая проверяет текущую роль пользователя, это, вероятно, ответит на вопрос OP. – Dre

+0

@ Да, это правда, но я не был уверен, где он хочет это использовать. Я отредактирую ответ – Amin