从自定义URL取回固定链接

时间:2020-09-17 作者:bymem

好的,我已经制定了自己的重写规则,使用wordpress中的add\\u rewrite\\u rule函数来获取插件页面的自定义url。

add_action( \'init\', function() {

  add_rewrite_rule( \'login/?$\', \'index.php?function=login\', \'top\' );
  add_rewrite_rule( \'login/([a-zA-Z0-9]+)/?$\', \'index.php?function=login&id=$matches[1]\', \'top\' );

});

add_filter( \'query_vars\', function($query_vars) {

  $query_vars[] = \'function\';
  $query_vars[] = \'id\';
  return $query_vars;

});
这很好,我可以访问[域名.com]/登录访问该页面。现在的问题是,如何最好地为该页面获取propper permalink,该页面可以在启用和禁用重写规则的情况下工作。

我试着使用get\\u permalink()函数,它可以处理页面,发布其他内容,但是有没有类似的函数可以获得这样的自定义url?

1 个回复
SO网友:Tom J Nowell

不,没有permalink。因为这是一个定制的URL,所以没有什么可锁定的。您需要自己从头开始生成这样一个函数。

幸运的是,你的URL就是这个词login/ 最后有一个ID,所以当你需要URL时,只需写出login/ 把身份证放在最后。将其包装在呼叫中site_url 将其从相对路径更改为绝对路径。

对于不漂亮的版本,只需\'index.php?function=login&id=$matches[1]\' 和交换$matches[1] 获取您想要的ID。

相关推荐

Ajax WordPress pass post URLs

我正在使用wp_localize_script 将post数据发送到ajax。wp_localize_script( \'my-script.js\', \'ajax_object\', array(\'ajax_url\' => admin_url(\'admin-ajax.php\')) ); add_action( \'wp_ajax_load_more_posts\', \'ajax_posts\' ); 将post数据发送到ajax:function ajax_posts