Скажем, для (классик) пример, что я хочу создать событие пользовательский тип сообщения, который присвоит некоторые определенные поля/свойства. Один из них: место проведения местоположения.
Место проведения местоположения, которое я думаю, должно быть тегом в пользовательской таксономии, имел бы, помимо заголовка, также URL и пара координат, например.
Так, вопросы:
Это походит на хорошую идею, поскольку она позволила бы Вам запросить местоположением и т.д. Я не знаю то, для чего Вы планируете использовать координаты, но не имеет никакого смысла иметь их присоединенный к событию (если то событие не является одноразовым посреди поля, но я предполагаю, что это было бы пограничным случаем?).
Что касается реализации, это - очень полезный плагин:
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 Сообщения: http://wordpress.org/extend/plugins/posts-to-posts/
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
То, что Вы желаете, является метаданными термина, например, два события отмечены в "Большом месте", и "Большое Место" имеет координаты, и т.д. присоединенные к ним, которые втянуты этими двумя событиями.
К сожалению, WordPress не имеет средства для термина meta. Можно добавить его через плагины, альтернативно, Вы могли иметь местоположение-meta типа сообщения, установить до не быть общедоступными и не показать в общедоступных списках, что можно присоединить meta к, затем присвоить его соответствующему тегу термина.
Или Вы могли сделать свою таксономию иерархической, и добавить дочерние условия с именами, такими как 'coordinates-X-Y-Z' и т.д. и фильтровать их при просмотре условий таксономии.