разве не очевидно?
удалить на фиг эмоджи из строки.
Просто удалить из строки или убрать из ВП? Просто если первое, то к ВП это не имеет отношения, тут надо идти на форумы программеров на php.
Ну или в гугле посмотреть сервисы формирования запросов с регулярками. Такие есть и они помогают
ну почему не имеет то?
мне надо именно в wordpress отфильтровать заголовки записей на предмет эмоджи. штатного фильтра эмоджи в wordpress нет, поэтому я спрашиваю здесь.
сервисы формирования регулярок?
я вам дал ссылку на такой сервис, там js-регулярка.
простая регулярка, тупо перечисление эмоджи.
но перевести ее в PCRE у меня не получается.
никаких конвертеров из js-регулярок в PCRE-регулярки я не нашел.
https://regex101.com/ — слева в меню Code Generator
слева в меню Code Generator
он генерирует код для готовой регулярки, а как раз готовой и нет.
пытаюсь конвертировать так:
$clean_text = preg_replace('/(\x{00A9}|\x{00AE}|[\x{2000}-\x{3300}]|\x{D83C}[\x{D000}-\x{DFFF}]|\x{D83D}[\x{D000}-\x{DFFF}]|\x{D83E}[\x{D000}-\x{DFFF}])/u', '', $text);
выбивает ошибку аля:
<b>Warning</b>: preg_replace(): Compilation failed: disallowed Unicode code point (>= 0xd800 && <= 0xdfff) at offset
ладно, по фиг.
обошелся другим способом:
$text = preg_replace('/[^\pL\pM[:ascii:]]+/u', '', $text);
не знаю, насколько это корректно, но эмоджи удаляет.
штатного фильтра эмоджи в wordpress нет
Зато есть список в виде функции _wp_emoji_list(), которым можно воспользоваться по аналогии с wp_encode_emoji():
$emoji = _wp_emoji_list( 'partials' );
foreach ( $emoji as $emoji_entity ) {
$emoji_char = html_entity_decode( $emoji_entity );
if ( false !== strpos( $content, $emoji_char ) ) {
$text = preg_replace( "/$emoji_char/", '', $text );
}
}
Впрочем, думаю, что способ из предыдущего ответа будет быстрее.