Im пытается сделать что-то вроде этого.Добавить пользовательскую страницу интерфейса без пункта меню - wordpress
Add "custom page" without page
Я знаю о добавлении WordPress страницы из панели администратора, Pages->Add New
, а затем связать эту страницу в PHP-файл с помощью слизняка. Я уже это сделал. Я просто хочу, чтобы эта страница работала без добавления ее с панели администратора, в случае удаления страницы с панели администратора она не будет работать, даже если она существует в каталоге.
Пожалуйста, дайте мне знать, если мой вопрос недостаточно ясен. Любая помощь высоко ценится.
Спасибо!
Update:
Благодаря @ 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');
Спасибо за код, я сумел сделать код работу после некоторых модификаций, а также я должен был добавить add_rewrite_rule() для того, чтобы получить доступ к URL и передать параметры в строках запроса. Есть только одна проблема, даже если страница работает нормально, но на вкладке браузера отображается «Страница не найдена». Любая идея почему? – Kevin
Если я понимаю вас, вы имеете в виду заголовок, который отображается на самой вкладке браузера, но страница правильно отображается? Этот заголовок вытягивается из вашего заголовка, поэтому сама страница должна иметь динамический набор названий. Я думаю, фильтр на wp_title будет работать лучше всего: function add_title_to_custom_page() { add_filter ('wp_title', 'filter_function_name', 10, 2) –
извините, нажмите ввод по ошибке. Вот мой комментарий: Я думаю, что фильтр на 'wp_title' в вашем' functions.php' файл будет работать лучше: функция add_title_to_custom_page ($ название) { если (is_page_template ('страниц job_application.php')) { \t $ title = "Мое пользовательское название страницы"; } else { \t $ title = $ title; } return $ title } add_filter ('wp_title', 'add_title_to_custom_page'); Надеюсь, что работает. –