wordpress中的自定义查询var

时间:2015-09-11 16:02:01

标签: php wordpress

我试图给我的自定义CPT(订单)提供一个漂亮的网址。这是我尝试的方式:

    //Update appURL
if (jQuery('button[id="ukApp"]').hasClass( "checked" )) {   
    appURL = "wp-content/plugins/GoMarkets_application/uk/uk-application.php";  
} else if (jQuery('button[id="itlApp"]').hasClass( "checked" )) {       
    appURL = "wp-content/plugins/GoMarkets_application/itl/it-application.php"; 
} 

//Get URL path
function getContextPath() {
    var ctx = window.location.pathname,
        path = '/' !== ctx ? ctx.substring(0, ctx.indexOf('/', 1) + 1) : ctx;
    return path + (/\/$/.test(path) ? '' : '/');
}

//Country Application URL

function getOutput() {
    jQuery.ajax({
      url: getContextPath() + appURL,
      complete: function (response) {
          jQuery('#output').html(response.responseText);
      },
      error: function () {
          jQuery('#output').html('Bummer: there was an error!');
      }
  });
  return false;
}   

假设帖子ID为32,此代码创建以下网址: http://www.example.com/orders/1121032

现在我想编写一个代码来显示上面url中帖子ID = 32的帖子。 我听说我应该使用自定义查询变量。但我不知道如何使用它。 这是我编写的其余代码

add_filter('post_type_link', 'custom_post_type_link', 1, 3);
function custom_post_type_link( $link, $post = 0 ){
    if ( $post->post_type == 'orders' ){
            $order_code = 1121000+$post->ID;
      return home_url( 'orders/' .  $order_code);
    } else {
        return $link;
    }
}

1 个答案:

答案 0 :(得分:0)

添加自定义重写规则后,需要告知wordpress激活新规则。

add_rewrite_rule函数调用后使用此方法。

$wp_rewrite->flush_rules();

警告:flush_rules价格昂贵,您绝对不想在每次请求时都拨打电话。通常,您会将custom_rewrites_initflush_rules放入插件register_activation_hook函数中。

如果您懒惰,可以将其添加到您的代码中一次,向网站发出请求(这将重写.htaccess重写规则),然后将flush_rules方法注释掉。 / p>