Wordpress和Polylang:使用'wp_insert_post_data'进行配置,并从元字段中发布名称

时间:2016-12-01 21:12:30

标签: wordpress polylang

我的自定义帖子类型和polylang与它们配合得很好。

但是,尝试加快插入过程,当我发布新帖子时,我不需要写名称,因为它是通过组合2个metas自动获得的。 这是我使用的脚本(我没有信用,我从这里得到它:https://wordpress.stackexchange.com/questions/94364/set-post-title-from-two-meta-fields

<?php function title_from_meta( $data , $postarr ) {

// We only care if it's my type
if( $data[ 'post_type' ] === 'mytype' ) {

    // get name from _POST or from post_meta
    $mytitle = ( ! empty( $_POST[ 'meta1' ] ) && ! empty( $_POST[ 'meta2' ] )  ) 
                    ? $_POST[ 'meta1' ] . $_POST[ 'meta2' ] 
                    : get_post_meta( $postarr[ 'ID' ], 'meta1', true ) . get_post_meta( $postarr[ 'ID' ], 'meta2', true );

    // if the name is not empty, we want to set the title
    if( $mytitle !== '' ) {

        // sanitize name for title
        $data[ 'post_title' ] = $mytitle;
        // sanitize the name for the slug
        $data[ 'post_name' ]  = sanitize_title( sanitize_title_with_dashes( $mytitle, '', 'save' ) );
    }
}
return $data;
}
add_filter( 'wp_insert_post_data' , 'title_from_meta' , '99', 2 );

问题: 当我点击帖子时,我得到了正确的永久链接: http://example.com/en/my-post-type-slug/postname http://example.com/fr/my-post-type-slug/postname-2

(其中帖子名= meta1meta2)

但是,如果我尝试访问这些地址,wordpress什么也找不到,而且指向其他语言的链接也不起作用......

我确实尝试停用或重新激活插件,重新保存永久链接结构,但没有任何作用。只有当我注释掉那段代码时才有效...任何想法?谢谢!

0 个答案:

没有答案