wordpress — PHP Кодировать строку как HTML

У меня есть этот код ниже, который приходит из файла WordPress Core /wp-admin/includes/class-wp-posts-list-table.php

  printf(
'<a class="row-title" href="%s" aria-label="%s">%s%s</a>',
get_edit_post_link( $post->ID ),
/* translators: %s: post title */
esc_attr( sprintf( __( '&#8220;%s&#8221; (Edit)' ), $title )),
$pad,
$title
);

В моем случае переменная $ title содержит иконку HTML шрифта, т.е.

  <i class="fa fa-heart"></i>

введите описание изображения здесь

Код PHP заставляет веб-браузер отображать символы HTML в виде строки, а не то, что мне нужно, — отображать в виде HTML и отображать Font Awesome Icon.

Я попытался обернуть $ title в

htmlentities()
html_entity_decode()
htmlspecialchars()

Может ли кто-нибудь помочь спасибо

0

Решение

Где вы использовали html_entity_decode? Я пробовал это:

printf(
'<a class="row-title" href="%s" aria-label="%s">%s%s</a>',
get_edit_post_link( $post->ID ),
/* translators: %s: post title */
esc_attr( sprintf( __( '&#8220;%s&#8221; (Edit)' ), $title )),
$pad,
html_entity_decode($title)
);

и кажется это работает.

Но это плохая идея изменить основной файл. Вы можете попробовать написать (или найти) какой-нибудь плагин, который позволяет добавлять иконки к определенному заголовку сообщения, но не ко всему сообщению и без изменения исходного файла.

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]