Поддержка Проблемы и решения Как сделать подписку на категории и теги как на habrahabr.ru?

  • Здравствуйте.
    Хочу на 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">
          ......

    Это не работает: при нажатии на кнопку почему-то меняется заголовок и отображаются всё те же посты категории, в которой и была нажата кнопка.
    Прошу подсказать, каким образом реализовать функционал подписки.

Просмотр 1 ответа (всего 1)
  • Получилось сделать добавление номера категории в пользовательское поле. Но не удается завести это действие на кнопку. Т.е. есть кнопка:
    <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’ этой категории в поле не происходит.

    Как поправить?

Просмотр 1 ответа (всего 1)
  • Тема «Как сделать подписку на категории и теги как на habrahabr.ru?» закрыта для новых ответов.