Добавьте Harvest Chosen в плагин внешнего интерфейса

Я новичок, поэтому я уверен, что ответ на этот вопрос, вероятно, очень прост, но я пробовал много разных вещей и до сих пор не могу туда добраться.

У меня есть плагин (Пограничный пост) для публикации на моем WordPress сайте. Следующий код генерирует множественный выбор категорий сообщений:

Function frontier_post_tax_multi($tmp_cat_list, $tmp_selected, $tmp_name, $tmp_id, $tmp_size)
{
$tmp_html = '<select class="frontier_post_dropdown" name="'.$tmp_name.'"id="'.$tmp_id.'" multiple="multiple" size="'.$tmp_size.'">';

foreach ( $tmp_cat_list as $taxid => $taxname) :
$tmp_html = $tmp_html.'<option class="fp_multi" value="'.$taxid.'"';

if ( $tmp_selected && in_array( $taxid, $tmp_selected ) )
{
$tmp_html = $tmp_html.' selected="selected"';
}

$tmp_html = $tmp_html.'>'.$taxname.'</option>';
endforeach;
$tmp_html = $tmp_html.'</select>';
return $tmp_html;
}

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

switch ($input_type)
{

case "single":
if (count($tmp_selected) == 0)
$tmp_selected[0] = '';

wp_dropdown_categories(array('taxonomy' => $tmp_tax_name, 'id'=>$tmp_field_name, 'exclude' => $exclude_list, 'hide_empty' => 0, 'name' => $tmp_input_field_name, 'orderby' => 'name', 'selected' => $tmp_selected[0], 'hierarchical' => true, 'show_count' => true, 'show_option_none' => __("None", "frontier-post"), 'option_none_value' => '0','class' => 'frontier_post_dropdown'));
//echo "selected: ".$tmp_selected[0]."<br>";
break;

case "multi":
echo frontier_post_tax_multi($tmp_tax_list , $tmp_selected, $tmp_input_field_name, $tmp_field_name, 10);
break;

case "checkbox":
echo frontier_post_tax_checkbox($tmp_tax_list , $tmp_selected, $tmp_input_field_name, $tmp_field_name);
break;

case "radio":
echo frontier_post_tax_radio($tmp_tax_list , $tmp_selected, $tmp_input_field_name, $tmp_field_name);
break;

case "radioline":
echo frontier_post_tax_radioline($tmp_tax_list , $tmp_selected, $tmp_input_field_name, $tmp_field_name);
break;

case "readonly":
echo frontier_post_tax_readonly($tmp_tax_list , $tmp_selected, $tmp_input_field_name, $tmp_field_name);
break;
} // switch

Я попытался повторить сценарий и использовать файл Chosen в качестве источника, я попытался повторить сценарий и поместить функцию внутрь, я включил выбранный файл в php-файл, содержащий вышеуказанный код, я использовал wp_enqueue_script, но независимо от того, что я пытаюсь, это не показывает, как это должно быть. Я не могу понять это.

Это в основном то, что я пытался сделать:

<script src="chosen.jquery.js"></script>;

<script>
$(function() {
$(".frontier_post_dropdown").chosen();
});
</script>;

Я изменил название класса, но он ничего не сделал.

Я не знаком с JQuery, и я видел это jQuery(document).ready(function(){ jQuery(".chosen").chosen(); }); описывается как правильное использование. Кто-нибудь может дать некоторые рекомендации по этому поводу?

Итак, как я могу добавить функцию Chosen к этой конкретной выборке?

Пожалуйста помоги.

(Примечание: я обратился к разработчику Frontier Post, но не получил ответа)

0

Решение

У меня есть догадка, что проблема может быть в пути к избранному. Также есть CSS-файл, который вам нужно включить, чтобы использовать выбранное. Можете ли вы заменить то, что у вас есть, этим?

<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/chosen/1.6.2/chosen.min.css"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/chosen/1.6.2/chosen.jquery.min.js"></script>
<script>
$(function() {
$(".frontier_post_dropdown").chosen();
});
</script>

Вы также можете попробовать заменить знаки доллара на jQuery, чтобы проверить, работает ли это. Как это:

<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/chosen/1.6.2/chosen.min.css"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/chosen/1.6.2/chosen.jquery.min.js"></script>
<script>
jQuery(function() {
jQuery(".frontier_post_dropdown").chosen();
});
</script>
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]