Пользовательские taxonomies объекты могли присоединить свойства?

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

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

Так, вопросы:

  1. Это было бы разумным подходом?
  2. Как я пошел бы, реализовав его?
1
24.11.2011, 13:25
4 ответа

Это походит на хорошую идею, поскольку она позволила бы Вам запросить местоположением и т.д. Я не знаю то, для чего Вы планируете использовать координаты, но не имеет никакого смысла иметь их присоединенный к событию (если то событие не является одноразовым посреди поля, но я предполагаю, что это было бы пограничным случаем?).

Что касается реализации, это - очень полезный плагин:

http://wordpress.org/extend/plugins/taxonomy-metadata/

Это позволяет Вам добавлять/получать/обновлять/удалять термин meta, как если бы это было сообщение meta

Таким образом, Вы могли сделать что-то вроде этого (только для предоставления идеи, может не работать 100%):

  add_action( 'locations_edit_form_fields', 'edit_locations');
  function edit_locations($location)
  {
    $url = get_term_meta($location->term_id, 'url', true); 
    ?>
   <tr class="form-field">
      <th scope="row" valign="top"><label for="url">url</label></th>
      <td>
        <input type="text" name="url" id="url" 
            value="<?php echo $url; ?>"/>
        <p class="description">Add url here.</p>
      </td>
  </tr> 
  }

установить информацию и затем использовать $ _POST для обновления meta таким образом:

 add_action( 'edited_locations', 'update_location', 10, 2);
 function update_location($location_term_id)
 {
   if (!$location_term_id) 
       return;

   if (isset($_POST['url'])) {
      //you may wish to sanitize this value (not sure if it has been already?)
      update_term_meta($location_term_id, 'url', $_POST['url']);
   }
 }

Дальнейшее чтение: http://en.bainternet.info/2011/custom-taxonomies-extra-fields

2
19.02.2020, 22:49
  • 1
    Координаты не были бы присоединены к событию, они будут присоединены к месту проведения - который присвоен событию, само место проведения имело бы различные свойства - как веб-сайт и координаты, описание и т.д. –  pax 24.11.2011, 23:27
  • 2
    , я думаю, что мы соглашаемся в этом случае. извините, если это не ясно из вышеупомянутого. –  djb 25.11.2011, 00:41

Как другие уже сказали, нет, условиям нельзя было присоединить дополнительные свойства к ним. Термин в таксономии является просто маркировкой для группы объектов.

Так, я вместо этого сделал бы место проведения вторым пользовательским типом сообщения и затем соединился бы, оно к событию отправляет тип с помощью Сообщений 2 Сообщения: http://wordpress.org/extend/plugins/posts-to-posts/

1
19.02.2020, 22:49
  • 1
    ? (как) можно затем искать места проведения? - отображают все события, которые происходят в определенном месте проведения, как Вы мог сделать с термином таксономии (теги/категории)? –  pax 30.11.2011, 02:01
  • 2
    Это - то, о чем P2P - все. Единственная вещь, которую это не имеет из поля еще, переписывают правила. –  scribu 30.11.2011, 13:57
  • 3
    Таким образом, URL были бы похожи на это: http://example.com/?connected_type=events-to-venues&connected_items=123 где 123 идентификатор места проведения. Но можно добавить, что собственные переписывают правила сделать их более симпатичными, сказать http://example.com/venue/some-venue-slug/events/ –  scribu 30.11.2011, 14:03

Координаты могли быть добавлены с помощью метаполей. Проверьте пример здесь http://codex.wordpress.org/Function_Reference/add_meta_box#Example

0
19.02.2020, 22:49

То, что Вы желаете, является метаданными термина, например, два события отмечены в "Большом месте", и "Большое Место" имеет координаты, и т.д. присоединенные к ним, которые втянуты этими двумя событиями.

К сожалению, WordPress не имеет средства для термина meta. Можно добавить его через плагины, альтернативно, Вы могли иметь местоположение-meta типа сообщения, установить до не быть общедоступными и не показать в общедоступных списках, что можно присоединить meta к, затем присвоить его соответствующему тегу термина.

Или Вы могли сделать свою таксономию иерархической, и добавить дочерние условия с именами, такими как 'coordinates-X-Y-Z' и т.д. и фильтровать их при просмотре условий таксономии.

0
19.02.2020, 22:49

Теги

Похожие вопросы