1

HTMLを出力する関数を呼び出す必要があります。この関数内には、html から 1 行を除外する条件が 1 つあります。この行が必要です。この条件は関数の引数ではありません。ハードコーディングされています。だから、私は自分自身をコーディングする必要がありますか、またはこの条件を変更する方法はありますか?

function get_media_item( $attachment_id, $args = null ) {
//....lots stuffs, then, arrive this part:
    $gallery = ( ( isset( $_REQUEST['tab'] ) && 'gallery' == $_REQUEST['tab'] ) || ( isset( $redir_tab ) && 'gallery' == $redir_tab ) );
    $order = '';

    foreach ( $form_fields as $key => $val ) {
        if ( 'menu_order' == $key ) {
            if ( $gallery )
                $order = "<div class='menu_order'> <input class='menu_order_input' type='text' id='attachments[$attachment_id][menu_order]' name='attachments[$attachment_id][menu_order]' value='" . esc_attr( $val['value'] ). "' /></div>";
            else
                $order = "<input type='hidden' name='attachments[$attachment_id][menu_order]' value='" . esc_attr( $val['value'] ) . "' />";

            unset( $form_fields['menu_order'] );
            break;
        }
    }
//... other stuffs
}

「ギャラリー」タブではなく、他のタブでこの関数を呼び出す必要があります。だから、$order 入力ボックスを取得できません。

4

1 に答える 1

0

条件を変更するために関数(ところで推奨される)にパラメーターを渡したくない場合は、グローバル化変数(またはセッション)を使用できます。

例:

function test(){
   global $instructions;

   if (isset($instructions['fetch'])){
      // new codes
   } else {
      // existing codes
   }

   return $result;
}

// implement:

$instructions = array();
$instructions['fetch'] = TRUE;
echo test(); 
于 2012-05-30T00:20:48.697 に答える