Cách chỉnh sửa widget trong WordPress


7

Trong menu Giao diện -> Tiện ích có một danh sách các tiện ích mà bạn có thể kéo và thả để hiển thị trong thanh bên.

Mã HTML / PHP ở đâu cho các widget tùy chỉnh này?

Tôi đã tham gia Chức năng tham khảo của WordPress nhưng không thể tìm thấy bất cứ điều gì. Chắc chắn các widget này phải được lấy từ một mẫu HTML / PHP.

Lý do tôi muốn biết là các tiêu đề widget theo mặc định là <h3>các thẻ và tôi muốn thay đổi chúng thành <h5>các thẻ. Ngoài ra tôi cần thêm một số <hr />và những thứ khác.

Tôi đã xem trong theme/includes/widgets.phphồ sơ nhưng không tìm thấy gì.

Nhân tiện, tôi đang sử dụng một bản sao của Twenty Eleven để sửa đổi chủ đề của mình.

Mã trong theme/sidebar.phplà dành cho (!dynamic_sidebar()), tuy nhiên thanh bên của tôi động nên mã này là vô dụng.


Có lẽ bạn đang tìm kiếm điều này: stackoverflow.com/a/2293494
Asko

dynamic_sidebar()sẽ thực hiện một trong hai điều khi được gọi, nó sẽ lặp lại thanh bên hoặc trả về false. Vì vậy, if( !dynamic_sidebar() )hoặc sẽ lặp lại thanh bên, hoặc làm một số dự phòng.
mor7ifer

Câu trả lời:


10

Các WordPress Widgets API là cách widget khác nhau được tạo ra và sidebars đăng ký.

Khi tạo một widget mới, có các biến có thể được thêm vào bất kỳ widget nào. Những người có được giá trị của họ từ các register_sidebarsđối số.

args (chuỗi / mảng) (tùy chọn)
Xây dựng Sidebar dựa trên các giá trị 'name' và 'id'. Mặc định: Không có
name- Tên thanh bên.
id- Id thanh bên.
before_widget- HTML để đặt trước mỗi widget.
after_widget- HTML để đặt sau mỗi widget.
before_title - HTML để đặt trước mỗi tiêu đề.
after_title - HTML để đặt sau mỗi tiêu đề.

Thí dụ:

<?php
    add_action( 'widgets_init', 'prefix_register_sidebars' ); 
    function prefix_register_sidebars() {
         $args = array(
         'name' => 'My Sidebar',
         'id'   => 'my-sidebar',
         'before_widget' => '<div id="%1$s" class="widget %2$s">',,
         'after_widget'  => '</div><hr />',
         'before_title'  => '<h5 class="widgettitle">',
         'after_title'   => '</h5>'
         );
      register_sidebars( $args );
   }

Widget ví dụ:

class MY_Widget extends WP_Widget {
    function my_widget( $args, $instance ) {
         $widget_ops = array(
         'description' => 'My Widget Description'
         );
        parent::WP_Widget(false, 'My Widget Name', $widget_ops );
    }
    function widget() { // This controls the display of the widget
    $title = 'My Widget Title';

    echo $before_widget;  // Outputs the the 'before_widget' register_sidebars setting
    echo $title;         //Will be wrapped in the 'before_title' and 'after_title' settings
    echo '<p>This is my widget output</p>';
    echo $after_widget;  //Outputs the 'after_widget' settings
    }
}
add_action( 'widgets_init', 'prefix_register_widgets' );
function prefix_register_widgets() {
    register_widget( 'my_widget' );
}

Tôi đặt lớp học này ở đâu trong chủ đề con?
shorif2000

0

nó nằm trong hàm.php

hàm hai mươieleven_widgets_init () {

register_widget( 'Twenty_Eleven_Ephemera_Widget' );

register_sidebar( array(
    'name' => __( 'Main Sidebar', 'twentyeleven' ),
    'id' => 'sidebar-1',
    'before_widget' => '<aside id="%1$s" class="widget %2$s">',
    'after_widget' => "</aside>",
    'before_title' => '<h3 class="widget-title">',
    'after_title' => '</h3>',
) );
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.