各投稿のスライダーに画像を表示するためにカスタムフィールドを使用していますが、カスタムフィールドにHTMLコードを入力した後で投稿を更新すると、コードが消えます。私は、投稿が保存されたときにカスタムフィールドからHTMLコードを削除するある種のフィルタがあると思います。プラグインを使わずにそれを回避する方法はありますか?
ありがとうございます。
編集:情報は次のコードを使用して保存されます。
function save_details(){
global $post;
update_post_meta($post->ID, "ptime", $_POST["ptime"]);
update_post_meta($post->ID, "services", $_POST["services"]);
update_post_meta($post->ID, "tools", $_POST["tools"]);
update_post_meta($post->ID, "url", $_POST["url"]);
update_post_meta($post->ID, "images", $_POST["images"]);
}
あなたは完全なfunctions.php code ここ (ペーストビン)を見つけることができます。
WordPressおよびこの目的のために意図されたAPIに関連して使用する正しい関数は以下のとおりです。
したがって、あなたのコードはこのようなものを反映するでしょう。
<textarea><?php echo esc_textarea($images);?></textarea>
htmlspecialchars
とhtmlentities
の使用は有効ですが、とにかくesc_textarea
がhtmlspecialchars
をラップするとしても、公式のAPI呼び出しを使用する方が適切です。
私は最初の答えを参考のために残しましたが、必要に応じて関連する関数を入れ替えます。
あなたの切り取ったPastebinの中で、あなたのimages_box
関数を (65行目の先頭) に置き換えます。
function images_box($echo = FALSE){
global $post;
$custom = get_post_custom($post->ID);
$images = $custom["images"][0];
?>
<textarea name="images" cols="100" rows="10">
<?php echo htmlspecialchars($images); //Hi, I'm your input! ?>
</textarea>
<?php
}
<textarea> ECHO INPUT HERE </textarea>
タグの間の入力値をエコーしていなかったので、何も入力していないようです。
入力を htmlspecialchars で囲む
また$city = $custom["images"][0];
は$images = $custom["images"][0];
(68行目) であるべきです