WordPress как на ладони
Очень Удобный и Быстрый Хостинг для сайтов на WordPress. Пользуюсь сам и вам рекомендую!

Доступ к записи по ссылке

Вопрос такой... как сделать доступ к записи по ссылке.

Чтобы запись не вылезала в рубриках и в лентах на главной , не имела статус опубликовано, чтобы не уведомлять подписчиков и не выводить на странице "карта сайта", но при этом любой не авторизованный мог зайти зная ссылку.

Нужно для того чтобы показать запись доверенным людям для внесения корректировок, утверждения при этом регистация на сайте отключена.

А потом как все устаканится уже опубликовать.

Вообще идея если воплотить неплохая, так же как на youtube.

-

Доброго здравия и солнечной радости всем!

Заметки к вопросу:
mi13 5.2 года назад

Решение через ajax работает на локалке по крайней мере.

mi13 5.2 года назад

Кому интересно - вот плагин access by link

0
mi13
5.2 года назад 84
  • 0
    kolshix779 paxtoy.com

    далек от темы , но если бы реализовывал
    1 создал бы отдельную таксономию access_post
    2 создал бы отдельное произвольное поле access_key
    3 добавил бы проверку, что перед сохранением, срабатывала бы проверка, на пренадлежность таксономии, если таковая есть, тогда сгенерировать ключ access_key
    3.1 посмотрел что в плагине карта сайта есть поле для id - а значит в код пункта 3 можно добавить запрос в БД с добавлением ID для которых не нужна карта сайта
    4 соответственно сравнивал бы ключ из урл с ключем access_key

    но по идее если запись не опубликована , а просто сохранена, тогда достаточно будет добавить произвольное поле access_key и кнопку для рандомной генерации символов внутри чтоб ручками не писать каждый раз спецыфический ключ ну и воспользоваться кодом из этой темы и добавить проверку на соответствие ключа , либо оставить общий ключ для всех.

    доступ к черновику по URL

    add_filter( 'posts_results', 'set_query_to_draft', null, 2 );
    function set_query_to_draft( $posts, &$query ) {
    
    	if ( sizeof( $posts ) != 1 )
    		return $posts;
    
    	$post_status_obj = get_post_status_object(get_post_status( $posts[0]));
    
    	if ( !$post_status_obj->name == 'draft' )
    		return $posts;
    
    	if ( $_GET['key'] != 'private_preview' )
    		return $posts;
    
    	$query->_draft_post = $posts;
    
    	add_filter( 'the_posts', 'show_draft_post', null, 2 );
    }
    
    function show_draft_post( $posts, &$query ) {
    	remove_filter( 'the_posts', 'show_draft_post', null, 2 );
    	return $query->_draft_post;
    }
    
    // урл для доступа
    &key=private_preview
    // стандартный урл который работает только для админа
    https://www.site.com/?p=4565&preview=true
    // урл для доступа любого user по ссылке
    https://www.site.com/?p=4565&preview=true&key=private_preview
    

    в теме описан общий ключ, но я бы всетаки сделал произвольное поле с рандомными ключами

    Комментировать
  • 0
    Kama9616

    Вот плагин, который тебе поможет: https://wordpress.org/plugins/mihdan-public-post-preview/

    Комментировать
На вопросы могут отвечать только зарегистрированные пользователи. Вход . Регистрация