3

我正在使用 wordpress,对于我正在开发的网站,我设置了一个自定义帖子类型来列出他们的每项服务和详细信息。

在他们的自定义联系表单上,我正在查询自定义帖子类型以将每个帖子的标题放入选项列表中,以便用户可以选择他们感兴趣的服务。

提交表单时的部分表单逻辑会检查是否填写了所有必填字段,如果没有填写,则会发出警报并要求用户填写所需信息。

我在每个输入中都有一段 php 代码将发布的数据回显到表单中,这样它就不会丢失,我正在尝试对选项下拉菜单做同样的事情,但我遇到了一个非常令人沮丧的问题:

任何带有和&符号的wordpress帖子标题都将&符号替换为&#038的字符代码,这很好,它在我的浏览器中显示为&,但在提交后它变成&在帖子数据中。

当我尝试将每个帖子标题与提交的选择进行比较时,if 语句永远找不到匹配项,因为 & 和 & 不匹配。

我已经尝试在 wordpress 的标题上使用 htmlspecialchars_decode() ,但这不会将 & 解码回和 &。

有谁知道一个函数来完成这个并解码可能弹出的任何奇怪的字符编码?

这是我的while循环发生的地方。

while ($custom_post_type->have_posts()) : $custom_post_type->the_post();

//set selected if submission is bouncing back                                       
if($_POST['ftype'] == get_the_title())
{
    $the_selected = ' selected="selected" ';
}
else
{
    $the_selected = '';
}

?>

    <option value="<?php echo get_the_title(); ?>" <?php echo $the_selected; ?>><?php echo get_the_title(); ?></option>

<?php


endwhile;
4

2 回答 2

5

html_entity_decode应该管用。

echo html_entity_decode('&#038;');
于 2013-07-16T00:29:25.730 回答
-2

有一个 WordPress 插件可以帮助您:
https ://wordpress.org/plugins/wp-no-format/

这个插件的想法是让您阻止 WordPress 在帖子的特定部分格式化您的 HTML。

使用起来非常简单,你只需要写:

<!-- noformat on -->

在 WordPress 编辑器上,就在您要保护的部分之前,从那时起,WordPress 将不会触及您编写的 HTML 代码。如果你想恢复标准的“格式化”,你必须输入:

<!-- noformat off -->
于 2015-09-16T16:29:54.623 回答