Вся проблема заключалась в получении значения мета поля, а именно:
$parent = rwmb_get_value( 'turcountry' , $post_id );
Я использовал rwmb_get_value(), плагина metabox io, которым собственно и передавал это значение. Так как я глупый и не могу понять почему, НО сам факт -
rwmb_get_value - "не тянуло" и после того как я заменил его на
get_post_meta() (
подробнее тут), все проблемы ранее озвученные мной ушли. Т.е. sitemap строится нормально, автопостинг работает нормально.
Много букв, что бы гугл это нашёл. Всем добра! Полный код, рабочий, у меня, хотя возможно это и костыль или даже порно, носам факт
function my_add_rewrite_rules_turs() {
add_rewrite_tag('%turs%', '([^/]+)','turs=');
add_permastruct('turs', '/countries/%countries%/turs/%turs%', false);
add_rewrite_rule('^countries/([^/]+)/turs/([^/]+)/?','index.php?turs=$matches[2]','top');
}
add_action( 'init', 'my_add_rewrite_rules_turs' );
function my_permalinks_turs($permalink, $post, $leavename) {
$post_id = $post->ID;
if($post->post_type != 'turs' || empty($permalink) || in_array($post->post_status, array('draft', 'pending', 'auto-draft')))
return $permalink;
$parent = get_post_meta( $post_id, 'turcountry' , true );
$parent_post = get_post( $parent );
$permalink = str_replace('%countries%', $parent_post->post_name, $permalink);
return $permalink;
}
add_filter('post_type_link', 'my_permalinks_turs', 10, 3);