Intereting Posts
Набор пользовательских продуктов Woocommerce Используйте wp_logout_url () на странице создания меню Отображать трекбеки отдельно от комментариев в двадцать Запрос между датами с использованием полей Дата выборки Пусть пользователь выбирает файл в настройке Ошибка при обновлении плагинов по FTP «Невозможно найти каталог содержимого WordPress (wp-content)». Стрить несколько транзакций Любимые сайты с укороченными гиперссылками Безопасно ли использовать sslverify => true для wp_remote_get / wp_remote_post Использование пользовательских параметров в дочерней теме удалите slug в постоянной ссылке для нескольких типов настраиваемых типов сообщений Глубоко вложенная петля меню с веточкой с использованием дерева WordPress не позволяет загружать XML-файл Когда перенаправление всех URL-адресов на главную страницу, какие исключения мне нужно сделать? После 3.5.1. обновления, сообщения, появляющиеся на сайте еще * NOT * в WP admin!

Создать шаблон «автор» с помощью плагина

Я создаю плагин для изменения профиля пользователя в панель wp. Я хотел бы добавить шаблон автора с тем же плагином.

Я не знаю, есть ли файл author.php в директории темы. Поэтому я хотел бы создать файл author.php (если author.php не существует) или изменить его (если существует author.php). Все это через плагин.

Как я могу?

Вы можете избавиться от того, как WooCommerce и другие плагины предоставляют шаблоны в своем плагине, позволяя тем самым переопределять их, если они существуют.

В принципе, вы подключаетесь к функции template_include , где WordPress решает, какой шаблон загрузить для данного запроса.

Поскольку вы хотите что-то сделать с шаблоном author.php, вам нужно будет протестировать условный тег is_author() . Теперь author.php является чем-то, что довольно распространено в теме, поэтому, если вы хотите захватить что-то обычное, я бы, вероятно, переименовал шаблон в нечто другое.

 add_filter( 'template_include', 'wpa_155871_template_loader' ); function wpa_155871_template_loader( $template ) { $file = ''; if ( is_author() ) { $file = 'custom-author.php'; // the name of your custom template $find[] = $file; $find[] = 'plugin-name/' . $file; // name of folder it could be in, in user's theme } if ( $file ) { $template = locate_template( array_unique( $find ) ); if ( ! $template ) { // if not found in theme, will use your plugin version $template = untrailingslashit( plugin_dir_path( __FILE__ ) ) . '/templates/' . $file; } } return $template; } 

Непроверенный, поэтому ваш пробег может варьироваться, и могут быть опечатки.