在Wordpress wp_options表中保存HTML链接时出现问题



我使用textarea字段和函数保存每个wordpress tag的一些额外信息

这是textarea字段(使用stripslashes(:

<textarea name="Tag_meta[related_links]" id="Tag_meta[related_links]" size="25" placeholder="enter here the links html"><?php echo stripslashes($tag_meta['related_links'] ? $tag_meta['related_links'] : ''); ?></textarea>

这是保存功能:

add_action ( 'edit_term', 'save_termmeta_tag');
// save extra category extra fields callback function
function save_termmeta_tag( $term_id ) {
if ( isset( $_POST['Tag_meta'] ) ) {
$t_id = $term_id;
$tag_meta = get_option( "tag_$t_id");
$tag_keys = array_keys($_POST['Tag_meta']);
foreach ($tag_keys as $key){
if (isset($_POST['Tag_meta'][$key])){
$tag_meta[$key] = $_POST['Tag_meta'][$key];
}
}
//save the option array
update_option( "tag_$t_id", $tag_meta );
}
}

问题是在这些保存的字段中的一个中(在wp_options表中(,我有一点HTML,而问题存在于该HTML内部的link上。

正如您在下面的示例中看到的,这是在textarea字段中输入的HTML(在保存表单之前(:

<li><a rel="nofollow" target="_blank" href="https://www.blablabla.com/the-rest-of-the-link">link</a></li>

这是它在wp_options表中的保存方式:

<li><a rel="nofollow" target="_blank" href="https://www.blablabla.com/the-rest-of-the-link">link</a></li>

请注意:每次保存选项时,保存过程还会广告extra的。例如:

保存一个

<li><a rel="nofollow" target="_blank" href="https://www.blablabla.com/the-rest-of-the-link">link</a></li>

保存两个

<li><a rel=\"nofollow\" target=\"_blank\" href=\"https://www.blablabla.com/the-rest-of-the-link\">link</a></li>

等等。。

这就是它的输出方式(由echo(:

http://www.mydomainname.com/https://www.blablabla.com/the-rest-of-the-link"

这里可能出了什么问题?

工作解决方案:

在文本区域替换此

<?php echo stripslashes($tag_meta['related_links'] ? $tag_meta['related_links'] : ''); ?>

通过此

<?php echo stripslashes($tag_meta['related_links'] ? $tag_meta['related_links']) : ''; ?>

echo上执行以下操作:

echo stripslashes($tag_meta['related_links']);

编辑

答案得到更正,@bossman 做出了巨大贡献

相关内容

  • 没有找到相关文章

最新更新