API tùy biến


10

Được rồi vì vậy tôi đã cố gắng giáo dục bản thân để tạo các phần bảng điều khiển mới và điều khiển linh hoạt bằng cách sử dụng API API của tùy biến.

Đã vài ngày nản lòng và tôi không thể có được cách chính xác để đạt được điều này thông qua API API.

Cho đến nay, đây là một số điều tôi đang làm để thực hiện nó nhưng không thành công:

    // 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();

Không ai trong số họ dường như hoạt động như phần không xuất hiện và tôi phải chạy api.section('section_id').activate()hai lần trong bảng điều khiển để làm cho phần đó xuất hiện, điều tương tự là với điều khiển.

Câu trả lời:


2

1) Có thể liên kết với trạng thái api. Yet có thể khắc phục việc phải gọi phần của bạn hai lần

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

  }
})(jQuery);

Tôi đã thấy một ghi chú trong trac có nội dung "Lưu ý rằng các API cho các điều khiển được thêm động và API cho các Phần và Bảng tùy chỉnh được tạo theo khuôn mẫu của JS chưa có sẵn kể từ WordPress 4.2. Xem # 30741." Đọc rằng trac kết thúc với "có thể không phải là 4,5 ngay bây giờ", vì vậy những nỗ lực của bạn có thể là vô ích = (

2) Để tham khảo, API API wp_customize có thể được tìm thấy ở đây . Liên kết này có thể hữu ích là tốt.

3) Tôi không có đủ đại diện cho liên kết thứ ba nhưng bạn có thể xem Kirki.org, một khung trợ giúp cho các trường tùy biến. Kirki cũng khá tích cực trên Github.

4) Về phía PHP, bạn có thể sử dụng tùy chọn "active_callback" trên mảng trường của mình để hiển thị động các trường.

$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;
  }
}

Chúc may mắn.


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.Điều đó tổng hợp nó lên. :(
Aniruddh Joshi

-2

Tôi đề nghị thay vì phát minh lại bánh xe, có thể bạn sẽ coi khung này là cơ sở cho các dự án của mình. http://wpshed.com/wordpress-theme-customizer-framework/ .

Đây là cái tốt nhất tôi tìm thấy khi tôi đang học và tìm kiếm các khung công tác. Bạn có thể mở rộng khung này bằng các điều khiển tùy chỉnh của riêng bạn và liên kết bên dưới sẽ giúp bạn hiểu và thực hiện giao tiếp giữa tùy biến và xem trước tùy biến thông qua jQuery hoặc javascript.

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


Xin chào Mohit, cảm ơn vì câu trả lời nhưng những gì bạn đã cung cấp không trả lời câu hỏi thực tế. Ngay cả khi bạn sử dụng các khung công tác này, bạn vẫn phải sử dụng API API. Các frawork này không mở rộng API JS của trình tùy biến và do đó không được sử dụng trong trường hợp này.
Aniruddh Joshi

Xin chào, bạn có thể dễ dàng quản lý điều đó với liên kết khác mà tôi đã cung cấp cho các tệp JS. Tôi đang làm theo cách này và giải quyết mục đích của tôi.
Mohit Aneja

Hmm, hỗ trợ cho điều khiển, phần và bảng điều khiển trong API API đi kèm với v4.0 được ra mắt vào ngày 14 tháng 12 và bài viết mà bạn đang đề cập đến được viết vào ngày 14 tháng 9. Bạn có hiểu ý tôi muốn nói không?
Aniruddh Joshi
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.