保存时自动将自定义分类添加到固定链接

时间:2018-02-14 作者:juicebyah

我已经搜索了这个网站,但我找不到一种方法来自动将自定义分类法添加到post permalink中。例如,我有一篇文章标题为“mysamplepost”,分类法标题为“years”,值为“2018”。所以当我点击publish时,post permalink变成了“https://example.com/mysamplepost-2018“”

我看到这个帖子了here 但它不像我想的那样工作。相反,它在文章标题之前插入自定义分类法。

感谢所有提供答案的人

1 个回复
SO网友:obiPlabon

请检查以下代码,您必须将自定义分类名称分配给$taxonomy 变量只有第一个分类学术语会附加到后段代码中。

add_filter( \'wp_insert_post_data\', function( $data, $postarr ) {
    /**
     * Only for post posttype and when the post is created
     */
    if ( empty( $postarr[\'save\'] ) && isset( $data[\'post_type\'] ) && \'post\' === $data[\'post_type\'] ) {
        $taxonomy  = \'custom-taxonomy-name\'; // Add your custom taxonomy name
        $tax_terms = array();
        $slug      = \'\';

        /**
         * Make sure custom taxonomy is really assigned
         */
        if ( isset( $postarr[\'tax_input\'] ) && isset( $postarr[\'tax_input\'][ $taxonomy ] ) ) {
            $tax_terms = array_filter( $postarr[\'tax_input\'][ $taxonomy ] );
        }

        /**
         * Only the first term slug will be appended
         */
        if ( count( $tax_terms ) ) {
            $term = get_term( current( $tax_terms ), $taxonomy );
            if ( ! is_wp_error( $term ) && ! is_null( $term ) ) {
                $slug = \'-\' . $term->slug;
            }
        }

        /**
         * Append the slug
         */
        if ( $slug ) {
            $data[\'post_name\'] .= $slug;
        }
    }
    return $data;
}, 10, 2 );

结束

相关推荐