自动保存帖子时是否从永久链接中删除单词?

时间:2019-01-18 作者:Michael Rogers

如何从自动生成的永久链接中自动删除某些单词(它使用%postname%).

例如:如果创建了标题为的新帖子:

如何从Wordpress永久链接中删除某些单词

我想要一系列的禁忌词,比如:certain, permalink然后slug将自动保存为:

How-to-remove-words-from-the-wordpress

我不想影响旧帖子的URL,只想影响新发布的帖子。

我找到了插件,但它们太重了,有数百万个功能,我只想知道如何在保存帖子的同时修改永久链接。

1 个回复
最合适的回答,由SO网友:Nour Edin Al-Habal 整理而成

要在发布帖子时更新这些帖子,请连接到save_post 操作如中所示this answer. 同时使用sanitize_title() 进行所需的致敏:

add_action( \'save_post\', \'wpse325979_save_post_callback\', 10, 2 );

function wpse325979_save_post_callback( $post_id, $post ) {

    // verify post is not a revision
    if ( ! wp_is_post_revision( $post_id ) ) {

        // unhook this function to prevent infinite looping
        remove_action( \'save_post\', \'wpse325979_save_post_callback\' );

        $title = $post->post_title;
        // remove forbidden keywords
        $forbidden = array(\'~certain~i\', \'~permalink~i\'); //i modifier for case insensitive
        $title = preg_replace($forbidden, \'\', $title);

        // update the post slug
        $slug = sanitize_title($title);

        wp_update_post( array(
            \'ID\' => $post_id,
            \'post_name\' => $slug 
        ));

        // re-hook this function
        add_action( \'save_post\', \'wpse325979_save_post_callback\' );

    }
}

相关推荐

Force pretty permalinks?

我正在构建一个插件,该插件将用于单个站点,并依赖于add_rewrite_rule 要工作,需要打开永久链接。打开它们并不困难,因为它只是一个站点,但我担心其中一个管理员可能会在不知道自己在做什么的情况下关闭它,并破坏该站点。如何以编程方式强制保持漂亮的永久链接?