커 스터 마이저 JS API


10

좋아, 나는 커 스터 마이저의 JS API를 사용하여 동적으로 새로운 패널 섹션과 컨트롤을 만들도록 교육하려고 노력했다.

며칠 동안 실망했으며 JS API를 통해이를 달성하는 정확한 방법을 얻을 수 없었습니다.

지금까지 이것은 성공을 거두기 위해 내가하고있는 일입니다.

    // for Settings
    api.create( 
        params.id, 
        params.id, 
        params.default, 
        params.args 
    );

    // for controls
    var controlConstructor = api.controlConstructor[params.type];
    var control = new controlConstructor(params.id, {
        params: params,
        previewer: api.previewer
    });
    api.control.add( 
        params.id, 
        control 
    );

     //for Sections
     var section = new api.Section(params.id, { 
        params: params
     }); 
    api.section.add( params.id, section );
    api.section('section_id').activate();

섹션이 나타나지 않아서 아무것도 작동하지 않는 것 같습니다 api.section('section_id').activate(). 콘솔에서 섹션을 두 번 실행 해야 섹션이 나타납니다. 컨트롤과 동일합니다.

답변:


2

1) 아마도 섹션을 두 번 호출 해야하는 api.ready 상태에 바인딩 될 수 있습니다.

(function($, api){
  api.bind( 'ready', function() {...

  }
})(jQuery);

trac에서 "동적으로 추가 된 컨트롤 용 API와 JS 템플릿 사용자 정의 섹션 및 패널 용 API는 아직 WordPress 4.2부터 사용할 수 없습니다."라는 메모를 보았습니다. # 30741을 참조하십시오. 트랙이 "지금 4.5가 아닐 것"으로 끝나서 당신의 노력은 쓸데 없을 것입니다 = (

2) 참고로 wp_customize JS API는 여기 에서 찾을 수 있습니다 . 이 링크 도 유용 할 수 있습니다.

3) 세 번째 링크에 대한 담당자가 충분하지 않지만 커 스터 마이저 필드의 도우미 프레임 워크 인 Kirki.org를 볼 수 있습니다. Kirki는 Github에서도 꽤 활동적입니다.

4) PHP 측에서는 필드 배열에서 "active_callback"옵션을 사용하여 필드를 동적으로 표시 할 수 있습니다.

$wp_customize->add_control( 'some_single_page_specific_option', array(
  'label'           => esc_html__( 'Single Page Option' ),
  'section'         => 'my_page_options',
  'active_callback' => 'if_is_singular',
));

function if_is_singular(){
  if( is_singular() ){
    return true;
  } else {
    return false;
  }
}

행운을 빕니다.


1
Note that the APIs for dynamically-added controls, and APIs for JS-templated custom Sections and Panels are not yet available as of WordPress 4.2.요약하자면. :(
Aniruddh Joshi 1

-2

휠을 재발 명하는 대신이 프레임 워크를 프로젝트의 기반으로 고려할 수 있습니다. http://wpshed.com/wordpress-theme-customizer-framework/ .

이것은 내가 프레임 워크를 배우고 찾고있는 동안 찾은 최고입니다. 사용자 정의 컨트롤로이 프레임 워크를 확장 할 수 있으며 아래 링크는 jQuery 또는 javascript를 통해 사용자 정의 프로그램과 사용자 정의 프로그램 사전 간의 통신을 이해하고 구현하는 데 도움이됩니다.

https://conductorplugin.com/developing-wordpress-customizer-part1/


안녕하세요 Mohit, 답변 주셔서 감사하지만 제공 한 내용은 실제 질문에 대답하지 않습니다. 이러한 프레임 워크를 사용하더라도 여전히 JS API를 사용해야합니다. 이러한 fraworks는 사용자 정의 프로그램의 JS API를 확장하지 않으므로이 경우에는 아무 소용이 없습니다.
Aniruddh Joshi 2016 년

안녕하세요, JS 파일에 제공 한 다른 링크를 사용하여 쉽게 관리 할 수 ​​있습니다. 나는 이것을 이렇게하고 내 목적을 해결합니다.
Mohit Aneja

흠, JS API의 컨트롤, 섹션 및 패널에 대한 지원은 12 월 14 일에 시작된 v4.0과 함께 제공되었으며 귀하가 참조하는 기사는 9 월 14 일에 작성되었습니다.
Aniruddh Joshi 2016 년
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.