Как получить ссылку на черновик записи в Wordpress?

Как можно получить человекопонятную ссылку на запись до ее публикации, учитывая что get_post_permalink() и get_permalink() возвращают ссылки вида "https://site.com/?post_type=team&p=1888", а $post->post_name оказывается пустым, хотя поле "постоянная ссылка" заполнено?
  • 3 апреля 2024 г. 10:39
Ответы на вопрос 2
Если вы хотите получить ссылку на черновик записи в 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();
}
Похожие вопросы