Как можно получить человекопонятную ссылку на запись до ее публикации, учитывая что get_post_permalink() и get_permalink() возвращают ссылки вида "https://site.com/?post_type=team&p=1888", а $post->post_name оказывается пустым, хотя поле "постоянная ссылка" заполнено?
Если вы хотите получить ссылку на черновик записи в WordPress до ее публикации, можно воспользоваться функцией get_permalink() и передать ей аргумент с ID черновика. Например: ```php // ID черновика $post_id = 1888; // Получаем ссылку на черновик записи $link = get_permalink( $post_id ); ``` Этот код вернет ссылку на черновик записи вида "https://site.com/?p=1888". Если вы хотите использовать человекопонятную ссылку, можно попробовать использовать функцию get_sample_permalink() для получения черновой ссылки записи: ```php // ID черновика $post_id = 1888; // Получаем данные о черновой ссылке записи $sample_permalink = get_sample_permalink( $post_id ); // Человекопонятная ссылка на черновик записи $link = $sample_permalink[0]; ``` Этот код вернет человекопонятную ссылку на черновик записи вида "https://site.com/sample-post/".
global $post; if ( in_array( $post->post_status, array( 'draft', 'pending', 'auto-draft' ) ) ) { $my_post = clone $post; $my_post->post_status = 'publish'; $my_post->post_name = sanitize_title( $my_post->post_name ? $my_post->post_name : $my_post->post_title, $my_post->ID ); $permalink = get_permalink( $my_post ); } else { $permalink = get_permalink(); }