Wordpress и Polylang: сопоставление с "wp_insert_post_data" и именем публикации из мета полей
У меня есть пользовательские типы сообщений, и Polylang прекрасно с ними работает.
Но, пытаясь ускорить процесс вставки, когда я публикую новое сообщение, мне не нужно писать имя, потому что оно автоматически получается путем объединения 2-х метад. Вот сценарий, которым я пользуюсь (для меня это не кредит, я получил его отсюда: 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 ничего не находит, а ссылки на другие языки не работают...
Я пытался деактивировать или повторно активировать плагины, восстановить структуру постоянных ссылок, но ничего не работает. Работает, только если я закомментирую этот кусок кода... какие-нибудь идеи? Спасибо!!