Добавить пользовательскую страницу интерфейса без пункта меню - WordPress
Я пытаюсь сделать что-то подобное.
Добавить "пользовательскую страницу" без страницы
Я знаю о добавлении WordPress страницы из панели администратора, Pages->Add New
и затем свяжите эту страницу с PHP-файлом, используя слаг. Я уже сделал это. Я просто хочу, чтобы эта страница работала без добавления ее из панели администратора, в случае, если страница будет удалена из панели администратора, она не будет работать, даже если она существует в каталоге.
Пожалуйста, дайте мне знать, если мой вопрос недостаточно ясен. Любая помощь высоко ценится.
Спасибо!
Обновить:
Благодаря @Mike я смог решить проблему, изменив его код. Я просто должен был добавить add_rewrite_rule()
и сейчас работает хорошо. Не забудьте сбросить постоянные ссылки.
function add_application_endpoint() {
add_rewrite_endpoint( 'view', EP_PERMALINK );
}
add_action( 'init', 'add_application_endpoint' );
function add_endpoint_queryvar( $query_vars ) {
$query_vars[] = 'view';
$query_vars[] = 'ptag';
$query_vars[] = 'product_cat';
return $query_vars;
}
add_filter( 'query_vars', 'add_endpoint_queryvar' );
add_rewrite_rule( '^view/([^/]+)/([^/]+)/?$', 'index.php?pagename=custom-product-tags&ptag=$matches[1]&product_cat=$matches[2]', 'top' );
/**
* Setting up job app template redirect for custom end point rewrite
*/
function job_application_template_redirect() {
global $wp_query;
if ( $wp_query->query_vars['name'] != 'custom-product-tags' ) {
return;
}
include dirname( __FILE__ ) . '/page-custom-product-tags.php';
exit;
}
add_action( 'template_redirect', 'job_application_template_redirect' );
1 ответ
Вы можете сделать это, создав пользовательскую конечную точку и настроив шаблон перенаправления в вашем functions.php
файл.. Вот пример для страницы заявления о приеме на работу. С этим кодом добавлен в мой functions.php
файл, если я захожу "/ применить" на моем сайте, page-job_application.php
шаблон представлен.
Надеюсь, что это работает для ваших нужд.
/**
* Rewrite custom endpoint for job post applications
*/
function add_application_endpoint() {
add_rewrite_endpoint('apply', EP_PERMALINK);
}
add_action( 'init', 'add_application_endpoint');
/**
* Register our custom endpoint as a query var
*/
function add_endpoint_queryvar( $query_vars ) {
$query_vars[] = 'apply';
return $query_vars;
}
add_filter( 'query_vars', 'add_endpoint_queryvar' );
/**
* Setting up job app template redirect for custom end point rewrite
*/
function job_application_template_redirect() {
global $wp_query;
if ( ! isset( $wp_query->query_vars['apply'] ) || ! is_singular() )
return;
include dirname( __FILE__ ) . '/page-job_application.php';
exit;
}
add_action( 'template_redirect', 'job_application_template_redirect' );