Добавить пользовательскую страницу интерфейса без пункта меню - 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' );
Другие вопросы по тегам