WP 重写 - 将帖子 ID 添加到 URL

问题描述 投票:0回答:3

我的 WordPress 主题中有一个自定义帖子类型(工作)。

这种类型的帖子是由用户自己插入的,但如果插入两个或多个具有相同标题的职位,则标题将是:

www.mydomain.com/job/title-choosen-by-user
www.mydomain.com/job/title-choosen-by-user-2
www.mydomain.com/job/title-choosen-by-user-3
...

是否可以保留相同的 slug 并使用任何重写在 URL 中添加帖子 ID?结果将是:

www.mydomain.com/job/100/title-choosen-by-user
www.mydomain.com/job/101/title-choosen-by-user
www.mydomain.com/job/102/title-choosen-by-user
...

如有任何帮助,我们将不胜感激。 谢谢你

php wordpress url-rewriting custom-post-type
3个回答
1
投票

也许尝试在 WP 管理仪表板下的“设置”>“永久链接”中更改永久链接结构。

尝试:

/%post_id%/%postname%/

0
投票

好吧,我找到了一个关于自定义永久链接结构的小但有效的教程

http://shibashake.com/wordpress-theme/custom-post-type-permalinks-part-2


0
投票

是的,可以在 URL 中添加帖子 ID,以便在 WordPress 的 function.php 中添加以下代码。

function custom_job_permalink( $permalink, $post ) {
    if ( 'job' === $post->post_type ) {
        $permalink = trailingslashit( home_url( "/job/{$post->ID}/{$post->post_name}" ) );
    }
    return $permalink;
}
add_filter( 'post_type_link', 'custom_job_permalink', 10, 2 );

function custom_job_rewrite_rules( $rules ) {
    $new_rules = array();
    $new_rules['job/([0-9]+)/(.+)/?$'] = 'index.php?job=$matches[1]';
    return array_merge( $new_rules, $rules );
}
add_filter( 'rewrite_rules_array', 'custom_job_rewrite_rules' );

聆听第一个函数修改职位发布类型的永久链接。 第二个功能是使用添加自定义重写规则到映射新 URL。

© www.soinside.com 2019 - 2024. All rights reserved.