Добавить поле в таблицу пользователя в базе данных при нажатии ссылки

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

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

Код для получения URL сообщения:

function curPageURL() { $pageURL = 'http'; if ($_SERVER["HTTPS"] == "on") {$pageURL .= "s";} $pageURL .= "://"; if ($_SERVER["SERVER_PORT"] != "80") { $pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"]; } else { $pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"]; } return $pageURL; } 

Теперь у меня есть url в переменной. Но как я могу сохранить этот url в поле для текущего пользователя?

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

Solutions Collecting From Web of "Добавить поле в таблицу пользователя в базе данных при нажатии ссылки"

Лично я бы сохранил идентификаторы сообщений (в отличие от URL-адресов). Что-то вроде:

 function wpse_143643_add_user_bookmark() { if ( ! empty( $_GET['bookmark'] ) && is_singular() && is_user_logged_in() ) { if ( ! $bookmarks = get_user_meta( $user_id = get_current_user_id(), 'bookmarks', true ) ) $bookmarks = array(); $bookmarks[] = get_queried_object_id(); $bookmarks = array_unique( $bookmarks ); update_user_meta( $user_id, 'bookmarks', $bookmarks ); } } add_action( 'template_redirect', 'wpse_143643_add_user_bookmark' ); 

Таким образом, ссылка, такая как http://example.com/my-post/?bookmark=true , добавит my-post в закладки текущего пользователя.

И для отображения списка закладок:

 if ( $bookmarks = get_user_meta( $user_id = get_current_user_id(), 'bookmarks', true ) ) { $posts = get_posts( array( 'post__in' => $bookmarks, ) ); $list = '<ul class="bookmarks">'; foreach ( $posts as $_post ) $list .= '<li><a href="' . get_permalink( $_post->ID ) . '">' . get_the_title( $_post->ID ) . '</a></li>'; $list .= '</ul>'; echo $list; }