以下のphpを変更して、最初のビューがチェックされるようにするにはどうすればよいですか。ただし、ユーザーがフォームのチェックを外してフォームを送信すると、フォームにアクセスするたびに(値を再度チェックすることを選択するまで)、チェックが外されたままになります。
class My_Recent_Posts_Widget extends WP_Widget {
function form( $instance ) {
/* form code here...*/
<input
type="checkbox"
class="checkbox"
id="<?php echo $this->get_field_id("excerpt"); ?>"
name="<?php echo $this->get_field_name("excerpt"); ?>"<?php checked( (bool) $instance["excerpt"], true ); ?>
/>
/* form code here...*/
}
}
更新:checked = "checked"を入力フィールド内に配置することは、私が探しているものではありません。その理由は、ユーザーがクリックしてチェックを外すたびに、送信後に常にチェックが戻ってくるためです。ユーザーがオプションのチェックを外すと、それ以降のフォームへのアクセス時にチェックを外したままにする必要があります。ただし、checked = checkedを使用すると、ユーザーが以前にこの特定の項目のチェックを外したかどうかに関係なく、デフォルトの状態が常にチェックされていることが保証されます。
デフォルト値をチェックする必要がありますが、ユーザーが一度もチェックを外した場合は、フォームを開くたびにチェックを外して、ユーザーが自分でチェックすることを選択するまで、チェックを外す必要があります。その答えは、データベース内の$instance["excerpt"]アイテムのステータスにあると思います。