wp-admin / widgets.php 변경


11

사이트 관리자가 사이트에서 각 위젯이 나타날 위치를 이해하도록 돕기 위해 관리자 패널에서 위젯 페이지를 약간 다르게 디자인하려고합니다.

여기에 이미지 설명을 입력하십시오

이를 위해 widgets.php가 렌더링하는 HTML을 변경해야합니다 (CSS 변경만으로는 충분하지 않습니다). 코어를 건드리지 않고 어떻게하면 좋을까요?


위의 접근 방식으로 위젯을 드래그하는 패널을 어디에 배치합니까?
sanchothefat

@sanchothefat 아래
Lea Cohen

패치를 코어에 제출하지 않겠습니까? 가치있는 개선으로 보입니다 ... 그러면 사이드 바를 등록 할 때 추가 된 매개 변수가 위치를 지정하는 것입니다. 아무것도 지정하지 않으면 현재와 같이 구성되어 있다고 가정합니다
Taylor Dewey

답변:



4

질문을 머리에서 꺼낼 수는 없지만 완전한 해결책을 찾을 시간이 없습니다. 여기에 아이디어를 적어 놓고 작은 현상금을 설정하겠습니다.

  • 다른 컨텐츠 위에 조치 'widgets_admin_page'wp-admin/widgets.php있습니다. 여기에 미리보기 상자를 배치 할 수 있습니다.
    샘플 코드 :

    add_action( 'widgets_admin_page', 'show_widget_preview' );
    function show_widget_preview()
    {
        $preview_widgets = $GLOBALS['wp_registered_sidebars'];
        unset ( $preview_widgets['wp_inactive_widgets'] );
    
        print '<div style="border:2px solid #ddf;padding:20px">'
        . '<pre>' . htmlspecialchars( print_r( $preview_widgets, TRUE ) ) . '</pre>'
        . '</div>';
    }

    등록 된 모든 사이드 바의 배열을 인쇄합니다. 등록 된 위젯을 찾으려면 모든 사이드 바를 살펴 봐야합니다.

  • 미리보기를 유용하게하려면 HTML 템플릿과 스타일 시트의 두 파일이 필요합니다.
    사용 add_theme_support()합니다.
    테마의 샘플 코드 functions.php:

    add_theme_support( 
        'widget_preview', 
        array ( 
            'template'   => get_stylesheet_directory() . '/widget-preview.php', 
            'stylesheet' => get_stylesheet_directory() . '/widget-preview.css' 
        ) 
    );
  • 에서 show_widget_preview()당신 스타일 시트를 대기열 및 템플릿을로드합니다. 의 사전 정의 된 자리 표시 자에 등록 된 사이드 바를 렌더링합니다 widget-preview.php.

  • 사용자 가 위젯에서 저장 단추를 누른 후 AJAX마다 템플리트를 업데이트 하십시오 .

  • 당면 과제 : 접근성 모드, 작은 창 및 CSS 충돌을 고려하십시오. 사이드 바가 등록되지 않은 경우 유용한 메시지를 표시합니다 (사이드 바 설명?). 사용자가 위젯을 미리보기 상자로 드래그하려고하면 어떻게됩니까? :)


@toscho에 대해 생각해 주셔서 감사합니다! 나는 현재 다른 프로젝트를 진행하고 있지만이 프로젝트로 돌아 가야하며 솔루션을 확인하고 알려 드리겠습니다. 다시 감사합니다!
Lea Cohen

0

짧은 대답은 코어를 건드리지 않고는 할 수 없다는 것입니다.

그러나 register_sidebar 함수에서 각 위젯 영역 (위젯 영역 제목 아래의 텍스트)에 대한 설명을 설정할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.