Все кто когда либо разрабатывал плагины для WordPress требующие наличие своих адресов (URL-ов) обращений  знают о том, что в WordPress ЧПУ строятся через Постоянную ссылку страницы. Проще говоря, если вам нужно чтобы ваш плагин что-то выводил или просто отзывался по адресу http://сайт/myprofile,  вам необходимо чтобы была страница с постоянной ссылкой http://сайт/myprofile. Как правило разработчики в FAQ’ах или в readme к своим плагинам пишут что для работы плагина вам необходимо создать пустую или с определенным содержанием страницу. Как то это не серьезно получается, установил пользователь плагин, так его еще и просят страницу создать, а может и не просто создать и написать в ней какие-то магические слова по типу {CALL_MY_PLUGIN}, которые потом плагин прощупает и сработает.  Рискну предложить свой метод автоматизирующий весь этот рутинный процесс и не вешающий на плечи пользователя заботы о создании и удалении страниц для вашего плагина. Итак смотрим:

я думаю код достаточно понятен,  при активации плагина в MyPluginActivation создается страница, и записывается ее ID в параметре плагина PageID.  При деактивации плагина в MyPluginDeactivation страница с ID равным ранее сохраненному параметру PageID успешно удаляется. Пользователь при этом никак не в этом процессе не участвует. Единственное что можно было бы добавить, так это функционал проверки на существование страниц с таким же именем. Да бы к примеру своим именем my-page не перекрыть уже существующую страницу — но думаю это не сложно дописать.

В случае, если вам не нужно чтобы ссылка на страницу вашего плагина отображалась в общем списке ссылок на сайте (блоге), но при этом вы не хотите обременять пользователя в том чтобы он сознательно убирал из списка ссылок ссылку на ваш плагин или использовал всякие там плагины по типу Exclude Page и т.д., есть достаточно простое решение:

ну вот пожалуй и все… ).