dotty
  • 0
Новичок

нубская ситуация с плагином wordpress

  • 0

Привет, я создаю свой первый плагин для WordPress. Пока все идет хорошо. Мне удалось добавить новую вкладку навигации на панель инструментов, которая ссылается на функцию, которая в основном использует «включить», чтобы выплевывать содержимое HTML-страницы в область администрирования WordPress.

Вот мой код

add_action('admin_menu', 'rooms_menu');

function rooms_menu() {
    add_menu_page('Rooms', 'Rooms', 'read', 'rooms-admin', 'show_hotel_dashboard', '' , 9);
}

function show_hotel_dashboard(){
    include 'dashboard.html';
}

Довольно прямолинейно, страница dashboard.html — это очень простая html-страница. Теперь, вот моя проблема, на этой странице dasboard.html, как мне связать некоторые ссылки с функциями?

Скажем, у меня есть ссылка, которая

<a href='do_action.php'>Do action</a>

когда я нажимаю на эту ссылку, она фактически переходит к do_action.php, а не к действию в моем плагине.

Есть идеи?

Share
  1. @dotty — всем было бы полезно, если бы вы могли дать этому заголовку, более подходящему к вашему вопросу. Тем не менее, что вы подразумеваете под «связать некоторые ссылки с функциями?» И когда вы говорите: «На самом деле это относится к do_action.php, а не к действию в моем плагине». о каких действиях вы говорите, о действиях WordPress? Куда вы хотите, чтобы он пошел? Чем яснее вы сформулируете вопрос, тем лучше мы сможем на него ответить.

    • 0
  2. Вместо того, чтобы включать файл HTML, включите файл PHP. Затем в верхней части файла PHP вы можете проверить, были ли отправлены какие-либо данные, и обработать их перед отображением формы. Итак, вместо того, что у вас есть, попробуйте:

    function show_hotel_dashboard(){
        include 'dashboard.php';
    }
    

    Затем на странице выполните следующие действия:

    <a href="dashboard.php?action=do_something">Do something</a>
    

    И в вашем dashboard.php файле начните с

    <?php
    if($_POST["action"] == "do_something") {
    
        // Do something
    
    } else {
    
        // Output your regular dashboard page
    
    } ?>
    
    • 0

Оставить ответ

You must login to add an answer.