我在自定义分类法上使用自定义表单字段来保存各种数据。除了在一个特殊的情况下,我试图保存一个iframe嵌入代码(来自Bandcamp),该代码稍后将在模板中回显,所有这些都工作得很好。Wordpress正在输出中的“任何”之前插入\\项。
我试过使用htmlspecialchars
在我的输出中,我还将其添加到编辑表单字段操作的值中。我想我在某个地方错过了这个过程的一部分,也许是在拯救?
保存功能为:
function save_taxonomy_custom_meta_bandcamp_embed_music( $term_id ) {
if ( isset( $_POST[\'term_meta\'] ) ) {
$t_id = $term_id;
$term_meta = get_option( "taxonomy_$t_id" );
$cat_keys = array_keys( $_POST[\'term_meta\'] );
foreach ( $cat_keys as $key ) {
if ( isset ( $_POST[\'term_meta\'][$key] ) ) {
$term_meta[$key] = $_POST[\'term_meta\'][$key];
}
}
// Save the option array.
update_option( "taxonomy_$t_id", $term_meta );
}
}
add_action( \'edited_hhie_artists\', \'save_taxonomy_custom_meta_bandcamp_embed_music\', 10, 2 );
add_action( \'create_hhie_artists\', \'save_taxonomy_custom_meta_bandcamp_embed_music\', 10, 2 );
最合适的回答,由SO网友:Ravinder Kumar 整理而成
you can use esc_attr
function save_taxonomy_custom_meta_bandcamp_embed_music( $term_id ) {
if ( isset( $_POST[\'term_meta\'] ) ) {
$t_id = $term_id;
$term_meta = get_option( "taxonomy_$t_id" );
$cat_keys = array_keys( $_POST[\'term_meta\'] );
foreach ( $cat_keys as $key ) {
if ( isset ( $_POST[\'term_meta\'][$key] ) ) {
$term_meta[$key] = esc_attr( $_POST[\'term_meta\'][$key] ); // encoded text with HTML entities
}
}
// Save the option array.
update_option( "taxonomy_$t_id", $term_meta );
}
}
add_action( \'edited_hhie_artists\', \'save_taxonomy_custom_meta_bandcamp_embed_music\', 10, 2 );
add_action( \'create_hhie_artists\', \'save_taxonomy_custom_meta_bandcamp_embed_music\', 10, 2 );