WordPress add_rewrite_rule 自定义帖子类型如何正确设置
P粉587970021
P粉587970021 2024-01-16 15:31:03
0
1
387

我的 wp 博客有一个名为“rules_and_laws”的自定义帖子类型,并且我添加了一个函数来指定重写规则:

function custom_rules_and_laws_permalink_structure() {
     add_rewrite_rule(
         '([^/]+)/?$',
        'index.php?rules_and_laws=$matches[1]',
        'top'
        );
 }
add_action( 'init', 'custom_rules_and_laws_permalink_structure' );

该规则适用于自定义帖子类型“rules_and_law”,唯一的问题是现在博客的所有其他页面和帖子都返回 404。

我尝试了另一种方法,尝试仅对 cpt 'rules_and_laws' 应用重写 url,但没有任何效果:

function custom_rules_and_laws_permalink_structure() {
    // Check if the current post type is 'rules_and_laws'
    if (is_singular('rules_and_laws')) {
        add_rewrite_rule(
            '([^/]+)/?$',
            'index.php?rules_and_laws=$matches[1]',
            'top'
        );
        flush_rewrite_rules(); // Flush the rewrite rules to apply the changes
    }
}
add_action('init', 'custom_rules_and_laws_permalink_structure');

例如,对于此代码,规则根本没有应用(看起来 is_singular('rules_and_laws') 不起作用)。

这是基本网址的示例:

https://website.com?rules_and_laws=art-4-security-regulation

这就是重写:

https://website.com/art-4-security-regulation

感谢您的帮助。

P粉587970021
P粉587970021

全部回复(1)
P粉514458863

应解决该问题的代码更新版本:

function custom_rules_and_laws_permalink_structure() {
    // Register the rewrite rule only for the 'rules_and_laws' post type
    add_rewrite_rule(
        '^rules_and_laws/([^/]+)/?$',
        'index.php?rules_and_laws=$matches[1]',
        'top'
    );

    // Flush the rewrite rules to apply the changes
    flush_rewrite_rules();
}
add_action('init', 'custom_rules_and_laws_permalink_structure');
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!