下面是一个如何预处理span
标记到帖子标题,其中span类添加到自定义字段中wpse_post_icon_class
.
我们可以尝试将其限制在最近发布的小部件上,包括:
add_filter( \'widget_display_callback\', function( $instance, $obj, $args )
{
// Only target Recent Posts widgets
if( \'recent-posts\' === $obj->id_base )
{
// Add filter
add_filter( \'the_title\', \'wpse_title_with_icon\', 10, 2 );
// Widget output
$obj->widget( $args, $instance );
// Remove filter
remove_filter( \'the_title\', \'wpse_title_with_icon\', 10, 2 );
// Override the default widget output
return true;
}
return $instance;
}, 10, 3 );
其中,过滤器回调定义为:
function wpse_title_with_icon( $title, $post_id )
{
// check if the current post has the \'wpse_post_icon_class\' custom field
if( $icon = get_post_meta( $post_id, \'wpse_post_icon_class\', true ) )
$title = sprintf(
\'<span class="%s"></span> %s\',
esc_attr( trim( $icon ) ),
$title
);
return $title;
}
Example:
这里有一个
Dashicon 示例中,我们添加
wpse_post_icon_class
值为的自定义字段
dashicons dashicons-flag
:
然后,“最近的帖子”窗口小部件将显示为:
其中,相应的标题前面有:
<span class="dashicons dashicons-flag"></span>
Notes:
最好只存储
flag
字符串,那么我们应该考虑一个更具体的名称,如
wpse_post_dashicon_class
, 而不是泛型
wpse_post_icon_class
名称
我们可能还想扩展此功能,并创建一个元框,用户可以在其中单击要关联帖子的图标。
我们必须将Dashicons或我们选择使用的字体或svg图标排列在前端。
另一种选择是写一个custom widget 或shortcode 以获得更大的灵活性。
希望有帮助。