입력 값이 두 개보다 크거나 같을 때, 내 위젯:::update 쓰기

5706 단어 WordPress

입문


Wordpress에는 원래 준비가 되어 있거나 플러그인이 첨부되어 있는 작은 프로그램이 있습니다.
또한 작은 위젯,functions를 직접 제작합니다.php에서 등록할 수도 있습니다.
그 방법은 여기서 매우 잘 정리되었다.
http://liginc.co.jp/web/wp/112370
내가 이 점을 참고했을 때, 작은 위젯이 업데이트되는 과정에서 끼었다.

업데이트 프로세스


부품 설정 화면은 모양새 - 사용자 정의 화면에 있습니다.예를 들어 기본 RSS 애플릿은 이런 느낌입니다.

여기에 텍스트 상자를 입력할 때 업데이트 방법이 실행됩니다.초점이 분리된 시간 등 하나하나 검증하고 등록한다.
인증이 끊기면 등록할 수 없습니다.
아까 기사에 쓴 업데이트 처리 업데이트 방법이 이런 느낌이었어요.
MyWidget.php
    /** 新しい設定データが適切なデータかどうかをチェックする。
     * 必ず$instanceを返す。さもなければ設定データは保存(更新)されない。
     *
     * @param array $new_instance  form()から入力された新しい設定データ
     * @param array $old_instance  前回の設定データ
     * @return array               保存(更新)する設定データ。falseを返すと更新しない。
     */
    function update($new_instance, $old_instance) {
        if(!filter_var($new_instance['email'],FILTER_VALIDATE_EMAIL)){
            return false;
        }
        return $new_instance;
    }
입력 값이 1개일 때 이렇게 하면 된다.값을 여러 개 입력할 때 정상적인 동작을 할 수 없습니다.
나는 if에 성공 판정을 쓰기로 결정했다.
MyWidget.php
    function update($new_instance, $old_instance) {
        if ( !empty($new_instance['text']) ){
            $new_instance['count'] = $old_instance['count'];
            return $new_instance;
        }
        if ($new_instance['count'] > 0 
            && $new_instance['count'] < 10
            && is_numeric($new_instance['count'])
            ){
            $new_instance['text'] = $old_instance['text'];
            return $new_instance;
        }
        return false;
    }
if(성공 텍스트 1) {
//$new_instance에 텍스트 2의 데이터 입력
return $new_instance;
}
if(성공 텍스트 2) {
//$new_instance에 텍스트 1의 데이터 입력
return $new_instance;
}
return false;
이런 느낌.
그러니까 기사를 활용한 글쓰기가 이런 느낌이겠죠.
MyWidget.php
    function update($new_instance, $old_instance) {
        if(!filter_var($new_instance['email'],FILTER_VALIDATE_EMAIL)){
            return false;
        } else {
            $new_instanct['text'] = $old_instance['text'];
        }
        return $new_instance;
    }

좋은 웹페이지 즐겨찾기