更新产品站点后,自定义字段中的Apostrophe后面会出现3个斜杠

时间:2017-07-07 作者:Krystian

我正在使用自定义字段向产品页面添加一些额外内容。因此,我通过函数钩住它。phpBut出于某种原因,在Wordpress后端编辑产品端时,它会在每个撇号前添加3个斜杠。示例:src="..." 将导致src=///"..///"enter image description here

每次单击“保存”,都会创建3个新的斜杠。我尝试了stripslashes\\u deep()和stripslashes(),但没有成功,如您所见:

add_action(\'woocommerce_before_single_product\', \'headline_placeholder\');
function headline_placeholder () {
global $wp_query;
$postid = $wp_query->post->ID;
echo get_post_meta($postid, \'productheadline\', true);
wp_reset_query();
}
你知道是什么导致了这个问题吗?

---- UPDATE ----我想我找到了一种方法,但它只减少了2个反斜杠,而不是全部3个:

function removeslashes($string)
{
    $string=implode("",explode("\\\\",$string));
    return stripslashes(trim($string));
}

add_action(\'woocommerce_before_single_product\', \'headline_placeholder\');
function headline_placeholder () {
global $wp_query;
$postid = $wp_query->post->ID;
$meta = get_post_meta($postid, \'productheadline\', true);
echo removeslashes($meta);
wp_reset_query();
}

1 个回复
SO网友:cybmeta

我认为您应该在自定义字段中使用更合适的值output it within HTML when needed; 例如productheadline 值只能是“Desktopia Pro”,这是一个real head line, 我无法想象标题值包含HTML标记,然后您可以在HTML标记中输出它,如下所示:

<div style="margin-bottom: 20px;">
  <h1><?php echo get_post_meta( $postid, \'productheadline\', true ); ?></h1>
</div>
我真的认为这种方法更好,而且是经得起未来考验的。例如,在自定义字段中使用HTML标记会使自定义字段数据不可移植且不可重用。例如,如果将来需要不同的HTML标记,会发生什么情况?您必须编辑每个自定义字段。不太好。如果您需要访问要在其他地方使用的产品标题(feed、restapi等),该怎么办?您将得到一个HTML标记,而不是真正的标题;不太好。

结束