是否有可能更改插件的默认行为?

时间:2016-11-04 作者:sysfiend

假设我有一页Foo 然后我创建了另一个同名的页面。默认情况下,WP将其挂起更改为Foo-2.<那么,我的问题是,有没有可能改变这种行为,使鼻涕虫Foo-bar 而不是Foo-2?

在这种情况下,行为将非常简单,因为我只需要-es 而不是-2 在每个重复的页面上。

1 个回复
SO网友:Z. Zlatev

为您测试以下筛选器工作:

function wpse245094_fist_duplicate_slug( $slug, $post_ID, $post_status, $post_type, $post_parent, $original_slug ) {

    // slug had to change, we must have a duplicate
    if ( $original_slug !== $slug ) {

        // try to replace `-2` with `-es`
        $new_slug = preg_replace( \'#-2$#\', \'-es\', $slug );

        if ( $new_slug !== $slug ) {
            // if a replacement occurred ensure uniqueness again. 
            $slug = wp_unique_post_slug( $new_slug, $post_ID, $post_status, $post_type, $post_parent );
        }
    }
}

add_filter( \'wp_unique_post_slug\', \'wpse245094_fist_duplicate_slug\', 10, 6 );
它只会尝试匹配-2 在slug结束时,只有在WP检查后更改。

相关推荐

如何使用PHP代码添加一个UTM标签来动态地获取UTM中的POST slug?

我想做的事是可行的,但我不知道怎么做。尴尬时刻即将到来:我几年前确实做过这件事,但丢失了代码,无法在网上找到它是如何完成的。我想做的是在我的标题中的链接上添加一个动态UTM标记,以便UTM标记拾取访问者正在单击的页面的片段。示例:如果访问者在一篇帖子上写着slug/something-goes-here/并单击了CTA按钮,那么他访问的CTA页面应该有/second-page/?utm\\u source=这里有东西你们知道如何用PHP中的一些代码来实现这一点吗?