3

私はワードプレスを使用しています。私が取り組んでいるウェブサイトでは、各サービスと詳細をリストするカスタム投稿タイプを設定しました。

カスタムの連絡先フォームで、カスタムの投稿タイプにクエリを実行して、各投稿のタイトルをオプション リストに取得し、ユーザーが興味のあるサービスを選択できるようにしています。

フォームが送信されたときのフォーム ロジックの一部は、すべての必須フィールドが入力されていることを確認し、そうでない場合は警告を発し、ユーザーに必要な情報を入力するように求めます。

投稿されたデータが失われないようにフォームにエコーバックするための各入力にphpコードがあり、オプションドロップダウンでも同じことをしようとしていますが、本当にイライラする問題に直面しています:

とアンパサンドを含むワードプレスの投稿タイトルは、アンパサンドが & の文字コードに置き換えられています。これは問題ありません。ブラウザーでは & として表示されますが、送信後は投稿データで & に変わります。

各投稿のタイトルを送信された選択と比較しようとすると、& と & が一致しないため、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

-2

役立つ WordPress 用のプラグインがあります:
https://wordpress.org/plugins/wp-no-format/

このプラグインのアイデアは、WordPress が投稿の特定の部分で HTML をフォーマットしないようにすることです。

使い方はとても簡単で、次のように書くだけです。

<!-- noformat on -->

WordPress Editor で、保護したい部分の直前に、それ以降、WordPress はあなたが書いた HTML コードに触れません。標準の「フォーマット」を再開したい場合は、次のように入力する必要があります。

<!-- noformat off -->
于 2015-09-16T16:29:54.623 に答える