Страницы администратора плагинов в Wordpress - PullRequest
0 голосов
/ 02 октября 2018

Я пытаюсь создать свой первый плагин WordPress, и у меня уже есть ярлыки меню администратора с использованием add_menu_page () и содержимого с вызываемой функцией в моем файле functions.php.На мой взгляд, я не могу добавить какие-либо функции javascript или ссылку на внешнюю php-страницу в том же каталоге плагинов.

Кто-нибудь еще мог это сделать?

Спасибо!

Вот пример кода.Код немного неуклюжий, и мне было интересно, есть ли способ улучшить это /

function mt_sublevel_page() {
    echo "<h2>" . __( 'Welcome', 'menu-test' ) . "</h2>";
    echo '<div class="wrap">';
    echo '<input type="button" value="Text Button" onclick="demo()" style="background-color:blue;">';
    echo '</div>';
    echo '<p class="test"></p>';
    echo '<script>';
    echo 'function demo() {var x = "Hello";document.getElementId("test").innerHTML=x;}';
    echo '<script>';
}

1 Ответ

0 голосов
/ 02 октября 2018

Обычно я загружаю файл разметки для страницы администратора:

Прежде всего, зарегистрируйте функцию страницы администратора на хуке admin_menu:

// Standard PHP Structure:
add_action( 'admin_menu', 'register_admin_page' );

// Using a Class Based structure
add_action( 'admin_menu', [$this, 'register_admin_page'] );

И затем определите свою функцию страницы администратора:

// Standard PHP Structure
function register_admin_page(){
    add_menu_page( 'My Plugin', 'My Plugin', 'edit_posts', 'my-plugin', 'admin_markup', 'some-dashicon' );
}

// Class Based PHP Structure
public function register_admin_page(){
    add_menu_page( 'My Plugin', 'My Plugin', 'edit_posts', 'my-plugin', [$this, 'admin_markup'], 'some-dashicon' );
}

Теперь вы можете определить вашу admin_markup функцию:

function admin_markup(){
    require_once dirname(__FILE__).'/admin-markup.php'; 
}

Это приведет вас к чему-то вроде этого:

add_action( 'admin_menu', 'register_admin_page' );
function register_admin_page(){
    add_menu_page( 'My Plugin', 'My Plugin', 'edit_posts', 'my-plugin', 'admin_markup', 'some-dashicon' );
}

function admin_markup(){
    require_once dirname(__FILE__).'/admin-markup.php'; 
}

Теперь внутри вашего файла admin-markup.php вы можете использовать функцию admin_enqueue_scripts() для загрузки скриптов и стилей для стилизации страницы по вашему желанию.

...