Tạo trang cài đặt WordPress

element 'name' => 'num_of_slides' // pass any custom parameters ) ); } // custom callback function to print field HTML function rudr_number( $args ){ printf( '', $args[ 'name' ], $args[ 'name' ], get_option( $args[ 'name' ], 2 ) // 2 is the default number of slides ); } // custom callback function to print checkbox field HTML function rudr_checkbox( $args ) { $value = get_option( 'slider_on' ); ?> 1 – in nút “Lưu thay đổi”
  •  'num_of_slides',
    			'class' => 'hello', // for 
  • element 'name' => 'num_of_slides' // pass any custom parameters ) ); } // custom callback function to print field HTML function rudr_number( $args ){ printf( '', $args[ 'name' ], $args[ 'name' ], get_option( $args[ 'name' ], 2 ) // 2 is the default number of slides ); } // custom callback function to print checkbox field HTML function rudr_checkbox( $args ) { $value = get_option( 'slider_on' ); ?> 2 – in các trường ẩn của trang cài đặt này
  •  'num_of_slides',
    			'class' => 'hello', // for 
  • element 'name' => 'num_of_slides' // pass any custom parameters ) ); } // custom callback function to print field HTML function rudr_number( $args ){ printf( '', $args[ 'name' ], $args[ 'name' ], get_option( $args[ 'name' ], 2 ) // 2 is the default number of slides ); } // custom callback function to print checkbox field HTML function rudr_checkbox( $args ) { $value = get_option( 'slider_on' ); ?> 3 – thực sự in các trường. Chuyển sên trang cài đặt của bạn vì chức năng này là tham số duy nhất (chúng tôi đặt nó trước trong hoặc chức năng)

    Đăng ký một cài đặt và tạo một trường

    Chà, nếu bạn chưa từng làm việc với API cài đặt WordPress, bạn có thể thấy phần này khá choáng ngợp. Để làm cho nó đơn giản hơn, hãy chia nhỏ toàn bộ quá trình thành 3 bước đơn giản

    1. Chúng ta cần tạo một phần cho các trường. Nếu bạn không muốn có tiêu đề phụ hoặc không muốn tách các trường thành các nhóm thì cũng không sao, nhưng chúng tôi vẫn cần một phần. Chức năng
       'num_of_slides',
      			'class' => 'hello', // for 
    element 'name' => 'num_of_slides' // pass any custom parameters ) ); } // custom callback function to print field HTML function rudr_number( $args ){ printf( '', $args[ 'name' ], $args[ 'name' ], get_option( $args[ 'name' ], 2 ) // 2 is the default number of slides ); } // custom callback function to print checkbox field HTML function rudr_checkbox( $args ) { $value = get_option( 'slider_on' ); ?> 4 sẽ giúp chúng tôi với điều đó
  • Bây giờ là lúc để đăng ký lĩnh vực này. Việc đăng ký khá đơn giản – chỉ cần chạy chức năng
     'num_of_slides',
    			'class' => 'hello', // for 
  • element 'name' => 'num_of_slides' // pass any custom parameters ) ); } // custom callback function to print field HTML function rudr_number( $args ){ printf( '', $args[ 'name' ], $args[ 'name' ], get_option( $args[ 'name' ], 2 ) // 2 is the default number of slides ); } // custom callback function to print checkbox field HTML function rudr_checkbox( $args ) { $value = get_option( 'slider_on' ); ?> 5 và chuyển tên nhóm cài đặt, tên tùy chọn và tên chức năng vệ sinh vào đó
  • Hiển thị trường bằng hàm
     'num_of_slides',
    			'class' => 'hello', // for 
  • element 'name' => 'num_of_slides' // pass any custom parameters ) ); } // custom callback function to print field HTML function rudr_number( $args ){ printf( '', $args[ 'name' ], $args[ 'name' ], get_option( $args[ 'name' ], 2 ) // 2 is the default number of slides ); } // custom callback function to print checkbox field HTML function rudr_checkbox( $args ) { $value = get_option( 'slider_on' ); ?> 6 và hàm gọi lại tùy chỉnh để in trường HTML

    Thẳng đến mã

     'num_of_slides',
    			'class' => 'hello', // for 
    element 'name' => 'num_of_slides' // pass any custom parameters ) ); } // custom callback function to print field HTML function rudr_number( $args ){ printf( '', $args[ 'name' ], $args[ 'name' ], get_option( $args[ 'name' ], 2 ) // 2 is the default number of slides ); } // custom callback function to print checkbox field HTML function rudr_checkbox( $args ) { $value = get_option( 'slider_on' ); ?>

    Trước hết – đôi lời về. Là đối số thứ ba của hàm

     'num_of_slides',
    			'class' => 'hello', // for 
    element 'name' => 'num_of_slides' // pass any custom parameters ) ); } // custom callback function to print field HTML function rudr_number( $args ){ printf( '', $args[ 'name' ], $args[ 'name' ], get_option( $args[ 'name' ], 2 ) // 2 is the default number of slides ); } // custom callback function to print checkbox field HTML function rudr_checkbox( $args ) { $value = get_option( 'slider_on' ); ?> 5, bạn phải chuyển tên hàm khử trùng. Nó có thể là một chức năng mặc định của WordPress (ví dụ: tôi sử dụng
     'num_of_slides',
    			'class' => 'hello', // for 
    element 'name' => 'num_of_slides' // pass any custom parameters ) ); } // custom callback function to print field HTML function rudr_number( $args ){ printf( '', $args[ 'name' ], $args[ 'name' ], get_option( $args[ 'name' ], 2 ) // 2 is the default number of slides ); } // custom callback function to print checkbox field HTML function rudr_checkbox( $args ) { $value = get_option( 'slider_on' ); ?> 8 cho số trang trình bày) hoặc một chức năng tùy chỉnh (tôi đã tạo hàm
     'num_of_slides',
    			'class' => 'hello', // for 
    element 'name' => 'num_of_slides' // pass any custom parameters ) ); } // custom callback function to print field HTML function rudr_number( $args ){ printf( '', $args[ 'name' ], $args[ 'name' ], get_option( $args[ 'name' ], 2 ) // 2 is the default number of slides ); } // custom callback function to print checkbox field HTML function rudr_checkbox( $args ) { $value = get_option( 'slider_on' ); ?> 9 cho trường hộp kiểm của chúng tôi)

    Thứ hai - cũng xin lưu ý rằng

     'num_of_slides',
    			'class' => 'hello', // for 
    element 'name' => 'num_of_slides' // pass any custom parameters ) ); } // custom callback function to print field HTML function rudr_number( $args ){ printf( '', $args[ 'name' ], $args[ 'name' ], get_option( $args[ 'name' ], 2 ) // 2 is the default number of slides ); } // custom callback function to print checkbox field HTML function rudr_checkbox( $args ) { $value = get_option( 'slider_on' ); ?> 6 có tham số thứ sáu rất tiện dụng cho phép chuyển bất kỳ đối số nào trong đó. Tham số này sẽ có đầy đủ trong chức năng gọi lại trường

    Cuối cùng, chúng tôi có các trường trên trang cài đặt của mình

    Tạo trang cài đặt WordPress

    Hiển thị thông báo thành công

    Câu chuyện dài ngắn ở đây là mã chúng ta cần

    
    			

    Slider settings saved.

    Và bây giờ chúng tôi có một trang tùy chọn làm việc

    Tạo trang cài đặt WordPress

    Thêm trường vào trang cài đặt WordPress

    Trong phần này của hướng dẫn, tôi sẽ chỉ cho bạn cách bỏ qua việc tạo một trang tùy chỉnh và thêm tất cả các cài đặt bạn cần vào các trang tùy chọn tiêu chuẩn của WordPress như “Chung”, “Viết”, v.v.

    Ví dụ, sẽ không hợp lý nếu thêm các trường cài đặt thanh trượt của chúng tôi vào trang “Phương tiện” phải không?

    Để làm như vậy, chúng tôi cần cung cấp sên trang cài đặt mặc định trong

     'num_of_slides',
    			'class' => 'hello', // for 
    element 'name' => 'num_of_slides' // pass any custom parameters ) ); } // custom callback function to print field HTML function rudr_number( $args ){ printf( '', $args[ 'name' ], $args[ 'name' ], get_option( $args[ 'name' ], 2 ) // 2 is the default number of slides ); } // custom callback function to print checkbox field HTML function rudr_checkbox( $args ) { $value = get_option( 'slider_on' ); ?> 4,
     'num_of_slides',
    			'class' => 'hello', // for 
    element 'name' => 'num_of_slides' // pass any custom parameters ) ); } // custom callback function to print field HTML function rudr_number( $args ){ printf( '', $args[ 'name' ], $args[ 'name' ], get_option( $args[ 'name' ], 2 ) // 2 is the default number of slides ); } // custom callback function to print checkbox field HTML function rudr_checkbox( $args ) { $value = get_option( 'slider_on' ); ?> 5 và
     'num_of_slides',
    			'class' => 'hello', // for 
    element 'name' => 'num_of_slides' // pass any custom parameters ) ); } // custom callback function to print field HTML function rudr_number( $args ){ printf( '', $args[ 'name' ], $args[ 'name' ], get_option( $args[ 'name' ], 2 ) // 2 is the default number of slides ); } // custom callback function to print checkbox field HTML function rudr_checkbox( $args ) { $value = get_option( 'slider_on' ); ?> 6. Bạn biết gì?

    // I created variables to make the things clearer
    $page_slug = 'rudr_slider';
    $option_group = 'rudr_slider_settings';
    
    // 1. create section
    add_settings_section(
    	'rudr_section_id',
    	'Slider settings',

    Và thế là đủ để các trường của chúng tôi được hiển thị trên trang “Phương tiện”

    Tạo trang cài đặt WordPress

    Các sên trang khác là.

    
    			

    Slider settings saved.

    4,
    
    			

    Slider settings saved.

    5,
    
    			

    Slider settings saved.

    6,
    
    			

    Slider settings saved.

    7,
    
    			

    Slider settings saved.

    8

    3. Xác thực các trường

    Ở trên, tôi đã không chạm vào bất kỳ thời điểm xác thực nào để đơn giản hóa hướng dẫn này nhưng tôi chắc chắn sẽ nói chi tiết về nó

    Giả sử rằng chúng ta phải xác thực trường "Số trang trình bày" và đặt giá trị tối thiểu của trường này bằng

    
    			

    Slider settings saved.

    9. Tôi biết tôi biết rằng
    // I created variables to make the things clearer
    $page_slug = 'rudr_slider';
    $option_group = 'rudr_slider_settings';
    
    // 1. create section
    add_settings_section(
    	'rudr_section_id',
    	'Slider settings',
    0 có thuộc tính tối thiểu nhưng dù sao xác thực HTML cũng không bao giờ là đủ

    Để thực hiện công việc xác thực, chúng tôi sẽ sử dụng hai chức năng WordPress

    • // I created variables to make the things clearer
      $page_slug = 'rudr_slider';
      $option_group = 'rudr_slider_settings';
      
      // 1. create section
      add_settings_section(
      	'rudr_section_id',
      	'Slider settings',
      1 – để in lỗi,
    • // I created variables to make the things clearer
      $page_slug = 'rudr_slider';
      $option_group = 'rudr_slider_settings';
      
      // 1. create section
      add_settings_section(
      	'rudr_section_id',
      	'Slider settings',
      2 – đăng ký một lỗi

    Hai chức năng này phải được kết nối bởi tham số đầu tiên của chúng, như

    // I created variables to make the things clearer
    $page_slug = 'rudr_slider';
    $option_group = 'rudr_slider_settings';
    
    // 1. create section
    add_settings_section(
    	'rudr_section_id',
    	'Slider settings',
    3 và
    // I created variables to make the things clearer
    $page_slug = 'rudr_slider';
    $option_group = 'rudr_slider_settings';
    
    // 1. create section
    add_settings_section(
    	'rudr_section_id',
    	'Slider settings',
    4. Hãy làm nó

    Hãy bắt đầu với và thêm hàm

    // I created variables to make the things clearer
    $page_slug = 'rudr_slider';
    $option_group = 'rudr_slider_settings';
    
    // 1. create section
    add_settings_section(
    	'rudr_section_id',
    	'Slider settings',
    1 vào đó, chính xác ở vị trí hiển thị lỗi

    
    		

    Bây giờ, mục tiêu của chúng tôi là tùy chỉnh chức năng khử trùng trường từ , do đó sẽ không chỉ khử trùng mà còn xác thực giá trị trường. Vì vậy, tôi sẽ thay thế hàm

     'num_of_slides',
    			'class' => 'hello', // for 
    element 'name' => 'num_of_slides' // pass any custom parameters ) ); } // custom callback function to print field HTML function rudr_number( $args ){ printf( '', $args[ 'name' ], $args[ 'name' ], get_option( $args[ 'name' ], 2 ) // 2 is the default number of slides ); } // custom callback function to print checkbox field HTML function rudr_checkbox( $args ) { $value = get_option( 'slider_on' ); ?> 8 bằng bất kỳ hàm tùy chỉnh nào

    register_setting( $option_group, 'num_of_slides', 'rudr_validate' );

    Và cuối cùng là chức năng vệ sinh/xác nhận của chúng tôi

    add_action( 'admin_menu', 'rudr_submenu' );
    
    function rudr_submenu(){
    
    	add_submenu_page(
    		'tools.php', // parent page slug
    		'Slider Settings',
    		'Slider',
    		'manage_options',
    		'rudr_slider',
    		'rudr_slider_page_callback',
    		0 // menu position
    	);
    }
    
    function rudr_slider_page_callback(){
    	echo 'What is up?';
    }
    0

    Và cuối cùng, hãy sửa đổi thông điệp thành công của chúng ta

    add_action( 'admin_menu', 'rudr_submenu' );
    
    function rudr_submenu(){
    
    	add_submenu_page(
    		'tools.php', // parent page slug
    		'Slider Settings',
    		'Slider',
    		'manage_options',
    		'rudr_slider',
    		'rudr_slider_page_callback',
    		0 // menu position
    	);
    }
    
    function rudr_slider_page_callback(){
    	echo 'What is up?';
    }
    1

    Chỉ là một sự hoàn hảo, phải không?

    Tạo trang cài đặt WordPress

    4. ví dụ dễ dàng hơn

    Chúng tôi có một số mã ở trên. Trên thực tế rất nhiều mã. Và đó là tất cả về việc tạo ra một vài trường đầu vào. Tôi muốn thành thật với bạn - tôi không bao giờ làm tất cả những điều đó một cách thủ công trong các dự án của mình. Bởi vì nó rất tốn thời gian. Các giải pháp sau đó là gì? . Bởi vì tôi nên dành thêm vài giờ nữa và tạo một trang web nhanh thay vì sử dụng quá tải chậm với các plugin chức năng

    Vì vậy, tôi đã tạo một plugin khác cho chính mình – Simple Fields. Nó có chức năng tối thiểu, đó là lý do tại sao nó nhanh như chớp, giống như bạn viết mã mọi thứ trong

    add_action( 'admin_menu', 'rudr_submenu' );
    
    function rudr_submenu(){
    
    	add_submenu_page(
    		'tools.php', // parent page slug
    		'Slider Settings',
    		'Slider',
    		'manage_options',
    		'rudr_slider',
    		'rudr_slider_page_callback',
    		0 // menu position
    	);
    }
    
    function rudr_slider_page_callback(){
    	echo 'What is up?';
    }
    4, nhưng đồng thời giúp bạn tiết kiệm hàng giờ viết mã

    Chỉ cần so sánh mã này với mọi thứ chúng tôi đã làm ở trên

    add_action( 'admin_menu', 'rudr_submenu' );
    
    function rudr_submenu(){
    
    	add_submenu_page(
    		'tools.php', // parent page slug
    		'Slider Settings',
    		'Slider',
    		'manage_options',
    		'rudr_slider',
    		'rudr_slider_page_callback',
    		0 // menu position
    	);
    }
    
    function rudr_slider_page_callback(){
    	echo 'What is up?';
    }
    2

    Và chúng tôi ở đây

    Tạo trang cài đặt WordPress

    # WordPress

    Tạo trang cài đặt WordPress

    Misha Rudrastyh

    Chào các bạn và chào mừng đến với trang web của tôi. Trong hơn 10 năm, tôi đã cố gắng hết sức để chia sẻ miễn phí với bạn một số hướng dẫn và mẹo tuyệt vời về WordPress

    Tab Cài đặt trong thanh bên Quản trị viên WordPress là trung tâm trung tâm để định cấu hình cài đặt cho các phần khác nhau của trang web WordPress. Nó chứa nhiều bảng phụ và nhiều plugin WordPress cũng thêm trang cài đặt của chúng dưới dạng menu trong tab Cài đặt. Nhấp vào nó sẽ đưa người dùng đến màn hình Cài đặt » Chung. Các bảng phụ mặc định khác trong tab cài đặt là Đọc, Viết, Thảo luận, Phương tiện và Liên kết cố định

    Tạo trang cài đặt WordPress

    Chỉ người dùng có vai trò người dùng quản trị viên mới có quyền truy cập vào tab cài đặt

    Chung chứa các cài đặt như Tiêu đề trang web, Dòng giới thiệu, URL WordPress, URL trang web, E-mail, tùy chọn Đăng ký và nhiều tùy chọn chung khác cho trang web WordPress

    Viết chứa các cài đặt liên quan đến định dạng bài đăng và tùy chọn danh mục

    Đọc chứa các cài đặt liên quan đến Trang đầu trang, Số lượng bài đăng sẽ hiển thị trên mỗi trang cho người đọc, các mục RSS sẽ được hiển thị, toàn văn hay tóm tắt sẽ được hiển thị và tùy chọn ngăn cản các công cụ tìm kiếm lập chỉ mục trang web

    Thảo luận chứa các cài đặt liên quan đến liên kết các bài đăng với các blog khác được tham chiếu, cài đặt nhận xét, thông báo email cho nhận xét và các tùy chọn để kiểm duyệt nhận xét

    Phương tiện chứa các cài đặt liên quan đến tải lên và quản lý hình ảnh cũng như phương tiện khác trong WordPress. Những thứ như kích thước hình ảnh và tùy chọn cắt xén có thể được quản lý tại đây

    Permalinks chứa các cài đặt liên quan đến cấu trúc URL của trang web. Các cài đặt này giúp người dùng tìm và ghi nhớ URL của các bài đăng cụ thể dễ dàng hơn. Sử dụng đúng cấu trúc cũng sẽ giúp tổ chức tốt hơn các bài đăng trong các danh mục khác nhau. Các tùy chọn trong cài đặt này cho phép bạn kiểm soát xem bạn muốn ngày được phản ánh trong URL của mình hay chỉ tiêu đề và danh mục hoặc kết hợp cả hai

    Các trang cài đặt tùy chỉnh của WordPress khá hữu ích khi bạn đang phát triển plugin hoặc chủ đề. Bạn chắc chắn sẽ cần một số vị trí trong khu vực quản trị nơi người dùng có thể định cấu hình plugin của bạn và API Cài đặt là hoàn hảo cho điều đó

    Và vâng, chúng tôi sẽ sử dụng API Cài đặt sẽ giúp chúng tôi tạo các trang tùy chọn của mình. Nó đã được thêm vào trong WordPress 2. 7 chỉ. Tôi thực sự nghi ngờ rằng bạn đang sử dụng phiên bản WordPress trước 2. 7, nhưng dù sao tôi nghĩ tôi phải đề cập đến điều đó

    Dưới đây là ảnh chụp màn hình của trang cài đặt mà chúng ta sẽ tạo trong hướng dẫn này. Tôi quyết định làm cho nó đơn giản, vì vậy chúng tôi có nhiều trường – trường văn bản và hộp kiểm

    Tạo trang cài đặt WordPress

    Các bạn, đây là hướng dẫn siêu chi tiết và từng bước về API Cài đặt, nếu bạn không có thời gian cho việc này, tôi thực sự khuyên bạn nên tiếp tục

    1. Thêm một trang tùy chọn

    Đây là bước đầu tiên của chúng ta – chúng ta sẽ tạo một thành phần menu quản trị với một trang trống. Tin vui ở đây là bạn có thể thêm nó ở bất cứ đâu – ngay sau mục menu “Dashboard” như một phần tử con của mục menu “Tools”

    Thêm trang menu quản trị cấp cao nhất

    Chức năng duy nhất có thể giúp chúng tôi ở đây là

    add_action( 'admin_menu', 'rudr_submenu' );
    
    function rudr_submenu(){
    
    	add_submenu_page(
    		'tools.php', // parent page slug
    		'Slider Settings',
    		'Slider',
    		'manage_options',
    		'rudr_slider',
    		'rudr_slider_page_callback',
    		0 // menu position
    	);
    }
    
    function rudr_slider_page_callback(){
    	echo 'What is up?';
    }
    3. Thỉnh thoảng tôi sẽ đề cập đến các chức năng khác nhau của WordPress trong hướng dẫn này – bạn có thể tìm thấy bất kỳ chức năng nào trong WordPress Codex chính thức

    Vì vậy, hãy thêm trang của chúng tôi ngay sau menu "Bảng điều khiển", phải không?

    add_action( 'admin_menu', 'rudr_top_lvl_menu' );
     
    function rudr_top_lvl_menu(){
     
    	add_menu_page(
    		'Slider Settings', // page Title
    		'Slider', // link text
    		'manage_options', // user capabilities
    		'rudr_slider', // page slug
    		'rudr_slider_page_callback', // this function prints the page content
    		'dashicons-images-alt2', // icon (from Dashicons for example)
    		4 // menu position
    	);
    }
     
    function rudr_slider_page_callback(){
    	echo 'What is up?';
    }

    Khi bạn đã chèn đoạn mã trên vào tệp chủ đề hiện tại của mình

    add_action( 'admin_menu', 'rudr_submenu' );
    
    function rudr_submenu(){
    
    	add_submenu_page(
    		'tools.php', // parent page slug
    		'Slider Settings',
    		'Slider',
    		'manage_options',
    		'rudr_slider',
    		'rudr_slider_page_callback',
    		0 // menu position
    	);
    }
    
    function rudr_slider_page_callback(){
    	echo 'What is up?';
    }
    4 hoặc vào một plugin tùy chỉnh, bạn sẽ nhận được kết quả như thế này

    Tạo trang cài đặt WordPress
    Giá trị vị trí menu bằng 4 cho phép chúng tôi thêm liên kết menu ngay trước “Bài đăng” nhưng sau “Bảng điều khiển” và dấu phân cách

    Thêm trang menu con quản trị

    Khi tạo một plugin hoặc chủ đề tùy chỉnh, tôi không khuyên bạn nên sử dụng các menu cấp cao nhất vì một số người dùng có xu hướng kích hoạt tới một trăm plugin trên trang web WordPress của họ, điều này khiến menu quản trị bị quá tải và lộn xộn

    Vì vậy, hãy tạo nhưng đặt nó chẳng hạn trong menu “Tools”

    Tạo trang cài đặt WordPress

    Và đây là mã sẵn sàng để sử dụng

    add_action( 'admin_menu', 'rudr_submenu' );
    
    function rudr_submenu(){
    
    	add_submenu_page(
    		'tools.php', // parent page slug
    		'Slider Settings',
    		'Slider',
    		'manage_options',
    		'rudr_slider',
    		'rudr_slider_page_callback',
    		0 // menu position
    	);
    }
    
    function rudr_slider_page_callback(){
    	echo 'What is up?';
    }

    Điều duy nhất tôi muốn làm nổi bật ở đây là một con sên trang mẹ trên dòng

    add_action( 'admin_menu', 'rudr_submenu' );
    
    function rudr_submenu(){
    
    	add_submenu_page(
    		'tools.php', // parent page slug
    		'Slider Settings',
    		'Slider',
    		'manage_options',
    		'rudr_slider',
    		'rudr_slider_page_callback',
    		0 // menu position
    	);
    }
    
    function rudr_slider_page_callback(){
    	echo 'What is up?';
    }
    5. Đây là một thứ khá dễ dàng để có được, chỉ cần truy cập vào bất kỳ trang menu cấp cao nhất nào và bạn sẽ thấy nó trong URL. Và còn hơn thế nữa – WordPress có các chức năng thay thế cho mọi thành phần menu cấp cao nhất. Hãy để tôi giải thích nó trong một bảng

    Parent page slugAlternative function
    add_action( 'admin_menu', 'rudr_submenu' );
    
    function rudr_submenu(){
    
    	add_submenu_page(
    		'tools.php', // parent page slug
    		'Slider Settings',
    		'Slider',
    		'manage_options',
    		'rudr_slider',
    		'rudr_slider_page_callback',
    		0 // menu position
    	);
    }
    
    function rudr_slider_page_callback(){
    	echo 'What is up?';
    }
    6 (Dashboard)
    add_action( 'admin_menu', 'rudr_submenu' );
    
    function rudr_submenu(){
    
    	add_submenu_page(
    		'tools.php', // parent page slug
    		'Slider Settings',
    		'Slider',
    		'manage_options',
    		'rudr_slider',
    		'rudr_slider_page_callback',
    		0 // menu position
    	);
    }
    
    function rudr_slider_page_callback(){
    	echo 'What is up?';
    }
    7
    add_action( 'admin_menu', 'rudr_submenu' );
    
    function rudr_submenu(){
    
    	add_submenu_page(
    		'tools.php', // parent page slug
    		'Slider Settings',
    		'Slider',
    		'manage_options',
    		'rudr_slider',
    		'rudr_slider_page_callback',
    		0 // menu position
    	);
    }
    
    function rudr_slider_page_callback(){
    	echo 'What is up?';
    }
    8 (Posts)
    add_action( 'admin_menu', 'rudr_submenu' );
    
    function rudr_submenu(){
    
    	add_submenu_page(
    		'tools.php', // parent page slug
    		'Slider Settings',
    		'Slider',
    		'manage_options',
    		'rudr_slider',
    		'rudr_slider_page_callback',
    		0 // menu position
    	);
    }
    
    function rudr_slider_page_callback(){
    	echo 'What is up?';
    }
    9
    add_management_page(
    	'Slider Settings',
    	'Slider',
    	'manage_options',
    	'rudr_slider',
    	'rudr_slider_page_callback',
    	0 // menu position
    );
    0 (Media)
    add_management_page(
    	'Slider Settings',
    	'Slider',
    	'manage_options',
    	'rudr_slider',
    	'rudr_slider_page_callback',
    	0 // menu position
    );
    1
    add_management_page(
    	'Slider Settings',
    	'Slider',
    	'manage_options',
    	'rudr_slider',
    	'rudr_slider_page_callback',
    	0 // menu position
    );
    2 (Pages)
    add_management_page(
    	'Slider Settings',
    	'Slider',
    	'manage_options',
    	'rudr_slider',
    	'rudr_slider_page_callback',
    	0 // menu position
    );
    3
    add_management_page(
    	'Slider Settings',
    	'Slider',
    	'manage_options',
    	'rudr_slider',
    	'rudr_slider_page_callback',
    	0 // menu position
    );
    4 (Comments)
    add_management_page(
    	'Slider Settings',
    	'Slider',
    	'manage_options',
    	'rudr_slider',
    	'rudr_slider_page_callback',
    	0 // menu position
    );
    5
    add_management_page(
    	'Slider Settings',
    	'Slider',
    	'manage_options',
    	'rudr_slider',
    	'rudr_slider_page_callback',
    	0 // menu position
    );
    6 (Appearance)
    add_management_page(
    	'Slider Settings',
    	'Slider',
    	'manage_options',
    	'rudr_slider',
    	'rudr_slider_page_callback',
    	0 // menu position
    );
    7
    add_management_page(
    	'Slider Settings',
    	'Slider',
    	'manage_options',
    	'rudr_slider',
    	'rudr_slider_page_callback',
    	0 // menu position
    );
    8 (Plugins)
    add_management_page(
    	'Slider Settings',
    	'Slider',
    	'manage_options',
    	'rudr_slider',
    	'rudr_slider_page_callback',
    	0 // menu position
    );
    9
    $icon = '';
    
    add_menu_page(
    	'Slider Settings',
    	'Slider',
    	'manage_options',
    	'rudr_slider',
    	'rudr_slider_page_callback',
    	'data:image/svg+xml;base64,' . base64_encode( $icon ),
    	4
    );
    0 (Users)
    $icon = '';
    
    add_menu_page(
    	'Slider Settings',
    	'Slider',
    	'manage_options',
    	'rudr_slider',
    	'rudr_slider_page_callback',
    	'data:image/svg+xml;base64,' . base64_encode( $icon ),
    	4
    );
    1
    $icon = '';
    
    add_menu_page(
    	'Slider Settings',
    	'Slider',
    	'manage_options',
    	'rudr_slider',
    	'rudr_slider_page_callback',
    	'data:image/svg+xml;base64,' . base64_encode( $icon ),
    	4
    );
    2 (Tools)
    $icon = '';
    
    add_menu_page(
    	'Slider Settings',
    	'Slider',
    	'manage_options',
    	'rudr_slider',
    	'rudr_slider_page_callback',
    	'data:image/svg+xml;base64,' . base64_encode( $icon ),
    	4
    );
    3
    $icon = '';
    
    add_menu_page(
    	'Slider Settings',
    	'Slider',
    	'manage_options',
    	'rudr_slider',
    	'rudr_slider_page_callback',
    	'data:image/svg+xml;base64,' . base64_encode( $icon ),
    	4
    );
    4 (Settings)
    $icon = '';
    
    add_menu_page(
    	'Slider Settings',
    	'Slider',
    	'manage_options',
    	'rudr_slider',
    	'rudr_slider_page_callback',
    	'data:image/svg+xml;base64,' . base64_encode( $icon ),
    	4
    );
    5

    Vậy là xong, bây giờ chúng ta có thể dễ dàng thay thế hàm

    $icon = '';
    
    add_menu_page(
    	'Slider Settings',
    	'Slider',
    	'manage_options',
    	'rudr_slider',
    	'rudr_slider_page_callback',
    	'data:image/svg+xml;base64,' . base64_encode( $icon ),
    	4
    );
    6 trong đoạn code trên bằng hàm
    $icon = '';
    
    add_menu_page(
    	'Slider Settings',
    	'Slider',
    	'manage_options',
    	'rudr_slider',
    	'rudr_slider_page_callback',
    	'data:image/svg+xml;base64,' . base64_encode( $icon ),
    	4
    );
    3

    add_management_page(
    	'Slider Settings',
    	'Slider',
    	'manage_options',
    	'rudr_slider',
    	'rudr_slider_page_callback',
    	0 // menu position
    );

    Sử dụng các biểu tượng SVG tùy chỉnh

    Vào năm , khi chúng tôi tạo menu cấp cao nhất, chúng tôi đã thêm một biểu tượng ở đó. Chúng tôi đã cung cấp tên của nó là

    $icon = '';
    
    add_menu_page(
    	'Slider Settings',
    	'Slider',
    	'manage_options',
    	'rudr_slider',
    	'rudr_slider_page_callback',
    	'data:image/svg+xml;base64,' . base64_encode( $icon ),
    	4
    );
    8 dưới dạng đối số hàm
    add_action( 'admin_menu', 'rudr_submenu' );
    
    function rudr_submenu(){
    
    	add_submenu_page(
    		'tools.php', // parent page slug
    		'Slider Settings',
    		'Slider',
    		'manage_options',
    		'rudr_slider',
    		'rudr_slider_page_callback',
    		0 // menu position
    	);
    }
    
    function rudr_slider_page_callback(){
    	echo 'What is up?';
    }
    3

    Tôi nghĩ bạn đã biết rằng WordPress có phông chữ biểu tượng vector Dashicons và chúng ta có thể sử dụng bất kỳ biểu tượng nào từ nó. Tất cả những gì chúng ta cần làm là cung cấp tên của nó như

    
    		

    0 hoặc
    
    		

    1, v.v.

    Nhưng phải làm gì nếu bạn cần sử dụng biểu tượng tùy chỉnh siêu thú vị cụ thể của mình? . Hãy để tôi giải thích làm thế nào

    1. Quyết định biểu tượng SVG nào bạn sẽ sử dụng. Ví dụ: tôi đã chọn một trong các biểu tượng từ bộ FontAwesome miễn phí, bạn có thể tìm thấy chúng trên GitHub
    2. Sao chép mã biểu tượng, bắt đầu bằng
      
      		

      2 và dán vào đâu đó để thuận tiện cho bạn
    3. Thay đổi chiều rộng và chiều cao của biểu tượng thành 20, ví dụ.
      
      		

      3
    4. Chúng tôi cần biểu tượng của mình thay đổi màu sắc khi di chuột, để đảm bảo điều đó sẽ xảy ra, vui lòng kiểm tra xem mọi thành phần
      
      		

      4 của biểu tượng có thuộc tính
      
      		

      5 hay không, ví dụ.
      
      		

      6
    5. Thêm mã biểu tượng vào chức năng
      add_action( 'admin_menu', 'rudr_submenu' );
      
      function rudr_submenu(){
      
      	add_submenu_page(
      		'tools.php', // parent page slug
      		'Slider Settings',
      		'Slider',
      		'manage_options',
      		'rudr_slider',
      		'rudr_slider_page_callback',
      		0 // menu position
      	);
      }
      
      function rudr_slider_page_callback(){
      	echo 'What is up?';
      }
      3 như thế này

    $icon = '';
    
    add_menu_page(
    	'Slider Settings',
    	'Slider',
    	'manage_options',
    	'rudr_slider',
    	'rudr_slider_page_callback',
    	'data:image/svg+xml;base64,' . base64_encode( $icon ),
    	4
    );

    Và nó hoạt động

    Tạo trang cài đặt WordPress

    2. API cài đặt WordPress

    Việc thêm các trường tùy chỉnh bằng API Cài đặt hơi khác một chút so với việc thêm chúng vào hộp meta hoặc vào cài đặt phân loại. Có thể bạn sẽ nói nó đơn giản hơn, ít nhất bạn không cần kiểm tra nonce nữa, có thể bạn sẽ nói nó phức tạp hơn – Tôi không biết

    Hãy bắt đầu điền vào hàm

    
    		

    8 với nội dung

    
    		

    Ở đây chúng tôi có một số chức năng

    • 
      		

      9 – chỉ trả về tiêu đề trang mà bạn đã đặt trước đây làm đối số đầu tiên của hàm
      add_action( 'admin_menu', 'rudr_submenu' );
      
      function rudr_submenu(){
      
      	add_submenu_page(
      		'tools.php', // parent page slug
      		'Slider Settings',
      		'Slider',
      		'manage_options',
      		'rudr_slider',
      		'rudr_slider_page_callback',
      		0 // menu position
      	);
      }
      
      function rudr_slider_page_callback(){
      	echo 'What is up?';
      }
      3
    •  'num_of_slides',
      			'class' => 'hello', // for