WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru

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

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

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

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

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

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

-

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

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

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

mi13 21 день назад

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

0
mi13
23 дня назад 2
  • 0
    kolshix475 cайт: 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
    Kama7208

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

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