1

私はこれに似た配列を持っています:

$scripts_to_load  = array(
    'css' => array(
        array(
            'name'=>'core-css',
            'path'=>get_bloginfo('stylesheet_url')
        ),
        array(
            'name'=>'media-query-css',
            'path'=>get_template_directory_uri() . '/assets/mediaquery.css'
        ), 
    ),
);

以上が資産の保管方法です。

cssタイプまたは名前を受け取る関数を書きたいと思います。タイプは またはjsのいずれcssかを検出し、配列の 1 つのキーにjs一致するキーが見つかった場合、その名前がそれぞれに使用されます。name配列は設定解除されます。

したがって、私が持っているものは何もないです accept: public function remove_asset($type, $name){}、したがって、配列を渡すとremove_asset('css', 'media-query-css')、次のようになります。

$scripts_to_load  = array(
    'css' => array(
        array(
            'name'=>'core-css',
            'path'=>get_bloginfo('stylesheet_url')
        ),
    ),
);

それを行う方法がわかりません...$typeうまく見つけることができますが、問題を引き起こしている$nameを見つけて、その配列の設定を解除します。

4

2 に答える 2

2

この関数は必要なことを行います:

function remove_asset($type, $name, &$scripts_to_load) {
    if( isset($scripts_to_load[$type] ) ) {
        foreach( $scripts_to_load[$type] as $key => $value ) {
            if( !empty( $value['name'] ) && $value['name'] == $name ) {
                unset( $scripts_to_load[$type][$key] );
            }
        }
    }
}

コントロールランがあります:

$scripts_to_load  = array(
    'css' => array(
        array(
            'name'=>'core-css',
            'path'=>'stylesheet_url'
        ),
        array(
            'name'=>'media-query-css',
            'path'=>'/assets/mediaquery.css'
        ), 
    ),
);

print_r( $scripts_to_load );
echo "\n";

remove_asset('css', 'media-query-css', $scripts_to_load);

print_r( $scripts_to_load );
echo "\n";
于 2013-10-19T17:05:56.557 に答える