自定义永久链接文章类型不包含-2

时间:2019-04-03 04:06:57

标签: wordpress


我需要有关自定义永久链接帖子类型wordpress的帮助。

现在,我有一个具有永久链接的帖子:

  • domain.com/post-type/test
  • domain.com/post-type/test-2

如何将格式设置为:

  • domain.com/post-type/test-%post-id%
  • domain.com/post-type/test-%post-id%(不包括-2后面的数字)

我使用了一个插件:

但是不工作,有人可以帮我,谢谢!

2 个答案:

答案 0 :(得分:0)

/**
 * unifying slug of the CPT by adding post id in the slug
 *
 * @param $slug
 * @param $post_id
 * @param $post_status
 * @param $post_type
 * @param $post_parent
 * @param $original_slug
 *
 * @return null|string|string[]
 */
function custom_permalink_slug_wp_unique_post_slug_callback( $original_slug, $slug, $post_id, $post_status, $post_type, $post_parent ) {

    // her we have to mention which post type to support
    $support_post_type = array( 'post', 'book' );

    if ( in_array( $post_type, $support_post_type ) ) {
        $slug = $slug . '-' . $post_id;
    }

    return $slug;
}

add_filter( 'pre_wp_unique_post_slug', 'custom_permalink_slug_wp_unique_post_slug_callback', 100, 6 );

复制上面的代码并将其粘贴到您的子主题functions.php文件中。 我已经测试过了,对我来说很好用

答案 1 :(得分:0)

将此添加到您的functions.php

add_filter( 'wp_unique_post_slug', function( $slug, $post_id, $post_status, $post_type, $post_parent, $original_slug ) {
  if ( $post_type == 'post' && $slug != $original_slug )
    $slug = preg_replace( '#\-[0-9]+$#', '-' . $post_id, $slug );

  return $slug;
}, 10, 6 );