У меня есть плагин размещения гостей на моем сайте Wordpress и вы хотите отключить использование коротких кодов для определенных ролей пользователей (например, подписчиков). Мне это нужно по соображениям безопасности в основном.Отключить использование коротких кодов для определенных ролей пользователей
ответ
Предположим, что у вас есть шорткод,
function myshortcode(){
$user = wp_get_current_user();
if (!in_array('author', (array) $user->roles)) {
//Run shortcode
}
}
add_shortcode('myshortcode','myshortcode');
Извините, если я просто вас не понимаю, но вы shure, это правильный код, который мне нужен? Потому что, глядя на него, похоже, что это не так. – Ted
то, что активно делать? –
yes, as iunderstand эта проверка роли пользователя, если ее роль не в роли затем выполняется –
Вы можете использовать функцию 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);
, где вы хотите показать контент.
Чтобы уточнить: хотите ли вы запретить этим пользователям вставлять короткие коды в сообщения/страницы, которые они пишут? Или вы хотите, чтобы эти короткие коды не использовались при рендеринге сообщений/страниц, которые они просматривают? –
Я не совсем уверен. Я думаю, что второй - предотвратить короткие коды извлечения. Таким образом, пользователь может писать shortcode или что-то вроде короткого кода, похожего на [some_text], но он не будет выполнен. Таким образом, короткий код будет похож на текст. – Ted