0

だから私はこれに頭を悩ませています...私はまだPHPの経験があまりないので、WPプラグインを編集するように頼まれました。

PHP

foreach ($options['forms'][$form_id]['inputs'] as $id => $input) {
        if (!$input['show'])
            continue;
        $val    = '';
        if (isset($_POST[$id])){
            $val    = esc_attr(strip_tags(stripslashes($_POST[$id])));
        }else{
            if( isset($input['value']) ) $val   = esc_attr(strip_tags(stripslashes($input['value'])));
        }

        $error  = ' ';
        if (isset($input['error']) && $input['error']) 
            $error  = ' error ';
        if($input['type'] != 'hidden')
            $content .= "\t".'<div class="sf_input_container_byben"><label class="w2llabel'.$error.$input['type'].'" for="sf_'.$id.'">'.esc_html(stripslashes($input['label'])).':';

        if ($input['required'] && $input['type'] != 'hidden')
            $content .= ' *';

        if($input['type'] != 'hidden')
            $content .= '</label>';

        if ($input['type'] == 'text') {         
            $content .= '<input value="'.$val.'" id="sf_'.$id.'" class="w2linput text" name="'.$id.'" type="text"/></div>';
        } else if ($input['type'] == 'textarea') {
            $content .= '<textarea id="sf_'.$id.'" class="w2linput textarea" name="'.$id.'">'.$val.'</textarea></div>';
        } else if ($input['type'] == 'hidden') {
            $content .= '<input type="hidden" id="sf_'.$id.'" class="w2linput hidden" name="'.$id.'" value="'.$val.'"></div>';
        }
    }

明らかにそれは部分的です。

after each (終了タグ)を取得しているという事実を除いて、すべてが期待どおりに出力されています。nl2br は、php ファイルのどこでも使用されていません。<br /></label>

私は何が欠けていますか?さらに情報が必要な場合は、ファイルに直接リンクできます。

HTMLは次のように出力されています:

<div class="sf_input_container_byben">
    <label class="w2llabel text" for="sf_first_name">First name: *</label><br />
    <input value="" id="sf_first_name" class="w2linput text" name="first_name" type="text"/>
</div>
4

2 に答える 2

0

最適な修正ではありませんが、時間が不足しているためdisplay: none;、CSS<br>でフォーム内の要素を非表示にするために使用しました。

別の問題を扱っていたがその解決策を提供したフォーラムスレッドに私をリンクしてくれたPaulへの小道具。

于 2012-08-28T21:59:25.650 に答える
0

通常、CSS でこれを修正するには、次のようにします。

label{display: inline;}

ラベルがブロック要素のように機能しているように見えるので、インラインまたはインラインブロックに変更しても、最後に余分な行を追加するのをやめるべきです。ラベルをブロックとして表示するコードが既にある可能性があることに注意してください。最初に css ファイルで検索してください。

于 2012-08-28T21:43:47.257 に答える