WordPress自定义重写

时间:2019-02-21 07:49:50

标签: wordpress

我正在尝试制定自定义重写规则,如下所示:

add_rewrite_rule(
    'sample-list/([A-Za-z0-9-]+)/?$',
    'index.php?pagename=sample-list&custom_var=matches[1]',
    'top' 
);

在样本列表中,我有一些带有链接的列表。

我也有页面样本列表,这是我生成这些链接的模板。链接看起来像这样:http://test.local/sample-list/whatever-111 因此,在这种情况下,我无法访问custom_var,它为空。

我设法解决此问题的唯一方法是创建名称不同于页面的自定义帖子类型。现在结构如下:

列表:http://test.local/sample-list(页面)

单个项目:http://test.local/sample-list-item/whatever-111(sample-list-item是自定义帖子类型)

我无法创建与页面名称相同名称的自定义帖子类型。

所以我的目标是:

列表:http://test.local/sample-list

单个项目:http://test.local/sample-list/whatever-111

custom_var为111

2 个答案:

答案 0 :(得分:0)

尝试将以下代码与上述代码一起添加,您可以阅读完整的文档 Wordpress Rewrite_API

function custom_rewrite_tag() {
  add_rewrite_tag('%custom_var%', '([^&]+)'); 
}
add_action('init', 'custom_rewrite_tag', 10, 0);

答案 1 :(得分:0)

这个有效:

// Call this method when users press on a button in ActivityB
public void backToActivityA(View view) {
    Intent intent = new Intent(this, ActivityA.class);
    intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
    startActivity(intent);
}

// When users press a button from ActivityA, ActivityB will be bring to front and this method will be called by Android.
@Override
protected void onNewIntent(Intent intent) {
    super.onNewIntent(intent);
    // Write your logic code here
}