пользовательский тип сообщения - раскрывающееся меню таксономии?

<p>я создал собственный тип записи и добавил различные мета-поля/поля к этому типу записи. все работает отлично, за исключением одного элемента ...</p><p>вместо того, чтобы использовать интерфейс по умолчанию для выбора таксономии, я хотел бы просто иметь выпадающее меню для выбора пользователем.</p><p>идея здесь состоит в том, чтобы позволить администраторам добавлять элементы таксономии, которыми можно управлять централизованно, однако, чтобы конкретный пост был связан только с одной таксономией.</p><p>более того, я бы предпочел просто добавить этот выпадающий список в один из моих существующих мета-блоков.</p><p>у кого-нибудь есть пример кода, который позволил бы мне выполнить эту задачу?</p>

<p>я ответил на этот вопрос в другом посте: <a href="https://wordpress.stackexchange.com/questions/1794/need-help-in-saving-taxonomy-terms-85-solved-just-need-some-help">сохранение условий таксономии</a> </p>

<p>вот как я это сделал.</p><pre><code><?php $tax = get_object_taxonomies('taxonomy_name'); $taxterms = get\_terms( $tax, 'orderby=count&offset=1&hide_empty=0&fields=all' ); ?> <select name='tax' id='tax'> <option value='' <?php if (!count( $names )) echo "selected";?>>select term</option> <?php foreach ( $taxterms as $term ) { echo '<option value="' . $term->slug . '" selected>' . $term->name . '</option>',"\n"; } ?> </select> </code></pre>

<p>у меня нет кода для этого, но он должен быть простым: создайте выпадающий список с именем <code>tax\_input[your\_taxonomy\_name]</code>, где значения - это id, если ваша таксономия иерархическая (как категории), и значения, если нет (например, теги). если вы используете это имя, я думаю, что оно сохраняется автоматически, без дополнительного кода от вас. вы можете создать раскрывающийся список с помощью функции <code>wp\_dropdown\_categories</code>, передав опцию <code>selected</code> с термином таксономии, который следует выбрать. функция обратного вызова, которая создает мета-поле, получает параметр <code>$post</code>, поэтому вы можете получить текущий термин таксономии оттуда.</p><p>чтобы отключить мета-поле, которое обычно добавляется, вы можете установить для <code>show\_ui</code> значение false при создании таксономии или удалить мета-поле до его отрисовки (я думаю, что ловушка <code>add\_meta\_boxes</code> - хорошее место). он будет иметь идентификатор <code>tagsdiv-your\_taxonomy\_name</code>, если он не является иерархическим, или <code>your\_taxonomy\_namediv</code>, если он есть.</p>