Здравствуйте.
Хочу на wordpress сделать функционал подписки на категории, теги и иные таксономии (наподобие того, как сделано на хабре). Т.е. если пользователь залогинен, то его лента постов формируется из тех категорий и тегов, на которые он подписан.
Для этого для пользователя добавил поле, в котором хранятся идентификаторы категорий (думаю, для тегов и иных таксономий подход будет таким же). Формирование ленты постов на основании этого поля проходит корректно, но не получается сделать кнопку подписки на категорию, отображаемую на странице категории и реализующую добавление идентификатора категории, на которой она нажата, в поле пользователя.
Примерный код category.php следующий:
get_header(); ?>
<main id="main" class="site-main col-md-9 col-md-push-3" role="main">
<?php if ( have_posts() ) : ?>
<header class="page-header">
<?php
the_archive_title( '<h1 class="page-title">', '</h1>' );
?>
<form method = "post">
<input type = "submit" name = "button1" value = "Подписаться">
<form>
<?php
if($_POST['button1']) {
$user_ID = get_current_user_id();
$NewCategoryID = get_the_category();
$NewCategories = the_author_meta('user_categories').','.$NewCategoryID->cat_ID;
update_user_meta( $user_ID, 'user_categories', $NewCategories ); }
?>
</header><!-- .page-header -->
<div id="posts-container">
......
Это не работает: почему-то меняется заголовок и отображаются всё те же посты категории, в которой и была нажата кнопка.
Прошу подсказать, каким образом реализовать функционал подписки.
UPDATE:
Получилось сделать добавление номера категории в пользовательское поле. Но не удается завести это действие на кнопку. Т.е. есть кнопка:
<input name="action" type="hidden" id="action" value="update-user" />
Обработчик кнопки такой:
if ( isset( $_POST['action'] ) ) {
$NewCategoryID = get_the_category();
$user_info = get_the_author_meta('user_categories',$current_user->ID);
$NewUserCategories = $user_info.','.$NewCategoryID[0]->term_id;
update_usermeta( $current_user->ID, 'user_categories', $NewUserCategories);
}
В поле профиля пользователя 'user_categories' хранятся идентификаторы категорий, которые этот пользователь должен видеть, через запятую.
При нажатии на кнопку открывается первый пост категории, на странице которой была нажата кнопка. При этом добавление идентификатора 'user_categories' этой категории в поле не происходит.