0

メニュー画面オプション

CSS classesメニュー画面オプションをデフォルトで有効にしたい。
これを実現するには、どのコードを使用すればよいですか?

4

1 に答える 1

3

関数でチェックされたユーザー メタ キーのget_user_option_{$option}場所にフィルターを追加できます。メタ値がである場合、ユーザーが初めてログインすると、デフォルトの非表示オプションが設定されます。これにフックすると、独自のデフォルト値を設定して、決して返されないようにすることができます。{$option}managenav-menuscolumnshiddenwp_nav_menu_setup()falsefalse

// add a filter to catch unset hidden options
add_filter( 'get_user_option_managenav-menuscolumnshidden', 'my_default_menuscolumnshidden', 99, 3 );
function my_default_menuscolumnshidden( $result, $option, $user_id ){
    if( $option == "managenav-menuscolumnshidden" ){
        // remove this function to prevent a loop
        remove_filter( 'get_user_option_managenav-menuscolumnshidden', 'my_default_menuscolumnshidden', 99 );
        // check if it is false (first login)
        $result = get_user_option( $option );
        if ( false === $result ) {
            // update with your own defaults (omits CSS from the hidden options)
            $result = array( 0 => 'link-target', 1 => 'xfn', 2 => 'description' );
            update_user_option($user->ID, 'managenav-menuscolumnshidden',
                $result,
                true);
        }
        // re-add filter in case it gets called again
        add_filter( 'get_user_option_managenav-menuscolumnshidden', 'my_default_menuscolumnshidden', 99 );
    }
    // if this was false before, now it is set to custom defaults
    return $result;
}
于 2013-04-03T05:02:07.220 に答える