首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >前端插件页

前端插件页
EN

Stack Overflow用户
提问于 2014-07-30 14:22:00
回答 1查看 80关注 0票数 0

好的,我在这里看过许多关于类似主题的文章,但每个帖子都是对url中的实际php文件(如cart.php )的重写规则,而不是漂亮的permalink /cart/

基本上,我在这里要做的就是在访问特定的url时让WordPress包含一个模板。在本例中,example.com/cart/。由于这段代码是用于插件的,所以它是一个不存在的url,所以我不能为它创建一个页面。当用户访问/cart/时,我试图使用重写规则以及query来显示正确的模板。我想我很接近,但我尝试过几种不同的方法,我知道我可能错过了一些显而易见的东西。我一直得到一个404错误,我很确定是我重写规则的问题所在。你们能帮我一把吗?

代码:

代码语言:javascript
复制
/* Rewrite Rules */
add_action('init', 'llc_product_rewrite_rule');
function llc_product_rewrite_rule() {
    add_rewrite_rule( 'cart/', 'index.php?llc_page=cart', 'top' );
}

/* Query Vars */
add_filter( 'query_vars', 'llc_product_register_query_var' );
function llc_product_register_query_var( $vars ) {
    $vars[] = 'llc_page';
    return $vars;
}

/* Parse Request */
add_action('parse_request', 'llc_cart_template');
function llc_cart_template() {
    if (get_query_var('llc_page') && (get_query_var('llc_page') == "cart")) {   
    include plugin_dir_path(__FILE__).'inc/cart.php';
    exit();
    }
    return;
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-30 17:04:12

谢谢你们所有深思熟虑的回应,但不幸的是,我没有一整天的时间,必须经过反复试验才能解决这个问题。

因此,首先,如果您只想让example.com/cart/加载特定的页面模板,当页面不存在时(例如,如果您需要wordpress插件来生成页面),那么您将需要设置代码。为了澄清与我问题中的代码有什么不同,这是重写规则,以及我包含模板的方式。我使用的是template_include而不是parse_request

代码语言:javascript
复制
/* Rewrite Rules */
add_action('init', 'llc_product_rewrite_rule');
function llc_product_rewrite_rule() {
    add_rewrite_rule( 'cart/?$', 'index.php?llc_page=cart', 'top' );
}

/* Query Vars */
add_filter( 'query_vars', 'llc_product_register_query_var' );
function llc_product_register_query_var( $vars ) {
    $vars[] = 'llc_page';
    return $vars;
}

/* Template Include */
add_filter('template_include', 'llc_cart_template_include', 1, 1);
function llc_cart_template_include($template)
{
    global $wp_query;
    $llc_page_value = $wp_query->query_vars['llc_page'];

    if ($llc_page_value && $llc_page_value == "cart") {
        return plugin_dir_path(__FILE__).'inc/cart.php';
    }

    return $template;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25039316

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档