将URL参数传递给WordPress页面和漂亮的URL

时间:2017-02-28 作者:metalbox

我创建了这样的短代码

function test_func( $atts ) {   

    return $_GET[\'myvar\'];
}
add_shortcode( \'test\', \'test_func\' );
和一个名为myparameters的页面

这是最终的url

http://website.com/myparameters
如果我试一下,效果会很好

http://website.com/myparameters/?myvar=theparameter
但我喜欢有这样漂亮的url或友好的url

http://website.com/myparameters/theparameter/
但未找到显示页面。

我尝试过这样的教程LINK 但什么都没发生

2 个回复
SO网友:Matt G

您正在形成GET请求,即?var=1(&A);var2=2但您已将其作为POST请求发送,您需要将请求作为GET请求发送,以便在url栏中显示预期的变量。

SO网友:metalbox

这是一个完整的示例,它可以很好地使用一个参数,只需将id更改为页面的id即可。

function bartag_func( $atts ) { 
    global $wp;
    $view = $wp->query_vars[\'jp_stn\'];
    return $view;
}
add_shortcode( \'bartag\', \'bartag_func\' );


function cdl_rewrite_rule(){
    add_rewrite_rule(
        \'pronosticador/([-a-z]+)/?$\',
        \'index.php?page_id=52&jp_stn=$matches[1]\',
        \'top\'
    );
}
add_action( \'init\', \'cdl_rewrite_rule\' );

function cdl_query_vars( $query_vars ){
    $query_vars[] = \'jp_stn\';
    return $query_vars;
}
add_filter( \'query_vars\', \'cdl_query_vars\' );