PHP 将字符串编码为 HTML
PHP Encode string as HTML
我在下面有这段代码,它来自 Wordpress 核心文件 /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( __( '“%s” (Edit)' ), $title )),
$pad,
$title
);
在我的例子中,变量 $title 包含 iconfont HTML 即
<i class="fa fa-heart"></i>
PHP 代码使网络浏览器将 HTML 字符显示为字符串,而不是我要显示为 HTML 并呈现 Font Awesome图标.
我试过在
中包装 $title
htmlentities()
html_entity_decode()
htmlspecialchars()
有人能帮忙吗
你在哪里使用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( __( '“%s” (Edit)' ), $title )),
$pad,
html_entity_decode($title)
);
而且似乎有效。
但是更改核心文件是个坏主意。您可以尝试编写(或找到)一些允许将图标添加到特定 post 标题但不是所有 post 并且不更改原始文件的插件。
我在下面有这段代码,它来自 Wordpress 核心文件 /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( __( '“%s” (Edit)' ), $title )),
$pad,
$title
);
在我的例子中,变量 $title 包含 iconfont HTML 即
<i class="fa fa-heart"></i>
PHP 代码使网络浏览器将 HTML 字符显示为字符串,而不是我要显示为 HTML 并呈现 Font Awesome图标.
我试过在
中包装 $titlehtmlentities()
html_entity_decode()
htmlspecialchars()
有人能帮忙吗
你在哪里使用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( __( '“%s” (Edit)' ), $title )),
$pad,
html_entity_decode($title)
);
而且似乎有效。
但是更改核心文件是个坏主意。您可以尝试编写(或找到)一些允许将图标添加到特定 post 标题但不是所有 post 并且不更改原始文件的插件。