Я использовал только wp_kses
тогда, когда мне нужно было разрешить / отфильтровать атрибуты тегов HTML (например, я хочу, чтобы им было разрешено иметь <image>
тег с src=""
атрибутом, но я не хочу, чтобы они могли, но href=""
или style=""
или что-то еще в теге image. В этом случае это wp_kses
пригодится, потому что (как вы можете видеть из созданного вами примера) вы можете фильтровать очень специфично. Я редко использовал wp_kses
хотя бы потому, что просто нашел пару нативных PHP Функции (ниже) делают свое дело и их легче понять, когда я смотрю на код несколько месяцев спустя.
Если вы хотите полностью удалить теги HTML (за исключением, может быть, разрешить несколько), я всегда использую strip_tags
. Вы можете передать строку разрешенных тегов (например <p> <br> <strong>
) или любые другие безопасные теги, которые вам нравятся. Это позволяет пользователю быть в состоянии иметь некоторый контроль над форматированием, если это применимо для вашего использования. Мне нравится, strip_tags
потому что для очистки ваших данных требуется белый список . (Это означает, что все будет удалено, кроме того, что вы явно белый список).
Если ваша цель состоит в том, чтобы позволить им вставлять любой HTML-код в контент, но вы просто хотите показать их текст в том виде, в каком они были введены (например, примеры кода), используйте htmlspecialchars
. Это преобразует символы HTML в их закодированные аналоги, чтобы вы могли безопасно выводить их на страницу.
Вы можете встретить код, использующий str_replace
который «ищет» плохие теги, такие как или что угодно. Я действительно не рекомендую такой подход, потому что он использует черный список для очистки данных, и вы должны постоянно следить за актуальностью своего черного списка.
Полагаю, это зависит от того, для чего используются ваши метабоксы. Если вы защищаете от ввода со стороны пользователей (которые могут быть вредоносными), я бы порекомендовал strip_tags
и просто разрешил некоторые из безопасных тегов. Если у вас есть хороший бизнес дело действительно микроуровень теги и определенные атрибуты контента пользователя, use wp_kses
.