• HOME
  • WordPress
  • メタフィールドに配列として保存したものを出力する[配列]

メタフィールドに配列として保存したものを出力する[配列]

<?php
$com = count($works_url);
for($i = 1; $i <= $com; $i++):
?>
<div class='inbox'><input name="works_url[]" class="works_url" size='30' value="
<?php if(isset ( $works_url)) echo $works_url[$i-1]; ?>
" /><span class='deth' onclick='javascript:app();'>◆</span></div>
<?php endfor;?>

フォームの出力としては
配列のカウントを行い、カウント分をforで繰り返し出力する。
wordpress側では基本的に自動で配列かどうかの判断・処理を行うので
管理画面でのinputはnameの部分をを[]を末尾にいれることで配列扱いになる。
[]の中に数字をいれなければ自動で配列のカウントを増やしてくれる。

あとは出力する際はどの要素かの指定をする必要があるので[$i-1]などとし数字を使う。

下記の動的に追加するフォームとあわせて無制限の投稿エリアフォームを打ち出すことができるようになる。

<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript">
<!--
$(function() {

$("#animate").click(function(){
$(this).before("<div class='inbox'><input name='works_url[]' class='works_url' size='30' value='' /><span class='deth' onclick='javascript:app();'>◆</span></div>");
});

});

function app() {
$("span.deth").click(function(){
$(this).closest('div').remove('.inbox');
});
}
// -->
</script>
</head>
<body>

<div class='inbox'><input name='works_url[]' class='works_url' size='30' value='' /><span class='deth' onclick='javascript:app();'>◆</span></div>
<span id="animate">on</span>

</body>
</html>

やりたいことは大分出来るようになった。
よきかなよきかな。