2015-11-08 2 views
0

Возможно ли иметь таксономию, которая отображает разные значения для каждого пользователя? Быстрый пример того, что я имею в виду:
Назовем нашу таксономию: «Жизнь». Пользователь John Doe добавляет сообщение, создает «Музыка» и «Фильмы» в таксономии «Жизнь».
Затем Джейн Доу добавляет новое сообщение, а таксономия «Жизнь» пуста для нее, пока она добавляет «Телевидение». Она не видит «Музыка» и «Фильмы», если она ее не добавляет.
Когда Джон Доу возвращается на свой пост, он не видит, как «телевизор» добавила Джейн.
WordPress - пользовательские значения таксономии для каждого пользователя?

Я очень новичок в WordPress, поэтому я не уверен, что можно добиться чего-то подобного.
Если бы это было невозможно, могли бы вы предложить несколько альтернатив? Было бы чрезвычайно важно, чтобы пользователи не могли видеть условия друг друга, только свои собственные.

ответ

1

WordPress по умолчанию не хранит идентификатор пользователя, создавшего таксономию. Таким образом, вы не можете сделать это выше с помощью основного экземпляра Wordpress. Кроме того, нет плагинов (которые я знаю), которые могут сделать это для вас.

С яркой стороны вы можете добавить эту поддержку самостоятельно. Вот как:

  • Вы изменить term_relationships таблицу, чтобы иметь поле (возможно, называется идентификатор пользователя), который содержит идентификатор пользователя, который создал систематику. Это можно сделать в phpMyAdmin.
  • Затем вам нужно открыть файл wp-includes/taxonomy.php и измените следующую строку:

    $wpdb->insert($wpdb->term_relationships, array('object_id' => $object_id, 'term_taxonomy_id' => $tt_id)); 
    

    к:

    $wpdb->insert($wpdb->term_relationships, array('object_id' => $object_id, 'term_taxonomy_id' => $tt_id, 'userid' => get_current_user_id())); 
    
  • Наконец, вам нужно будет внести изменения в файл шаблона называется функцией the_tags с альтернативной функцией (созданной вами), которая будет учитывать текущий идентификатор пользователя.

(Обратите внимание, что если get_current_user_id() не работает, то вам необходимо найти альтернативный метод, чтобы получить идентификатор пользователя.)

+1

это гениальное решение, спасибо вам большое! – iuwan

+0

Спасибо - только что внесли некоторые изменения в форматирование сообщений, чтобы они стали более ясными. – itoctopus

1

Если я хорошо понимаю, что вам нужно, возможно, этот плагин может решить эту проблему: https://wordpress.org/plugins/user-specific-content/ или искать что-то подобное в репозитории WP.

+0

спасибо, я буду смотреть на плагине! – iuwan

Смежные вопросы