0

我试图做这样的事情。

添加没有页面的“自定义页面”

我知道从管理面板添加一个 wordpress 页面Pages->Add New,然后使用 slug 将此页面链接到 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' );
4

1 回答 1

1

您可以通过创建自定义端点并在functions.php文件中设置模板重定向来做到这一点。这是工作申请页面的示例。将此代码添加到我的functions.php文件后,如果我在我的站点上访问“/apply”,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' );
于 2015-01-05T22:50:42.653 回答