prolab
Ответы в темах
-
Нашёл проблему:
В файле style.css заремил вот этот кусок и карта стала отображаться во всех браузерах.
/* Images */ .entry-content img, .comment-content img, .widget img { max-width: 97.5%; }
Чтобы не было конфликта со стилем темы лучше не удалять это правило, а добавить тор такой стиль:
#content .yaMap img { max-width: none; }
Форум: Плагины
Тема: фильтрация для custom type не всегда работаетУточнение:
query_var — этот параметр определяет имя переменной, которая будет отвечать в запросе за отбор нашей таксономии. Т.е. при такой записи ‘query_var’ => ‘name_var’, необходимо подправить код:1)
'name' => 'name_var'
— это при формировании списка
2)$request['name_var'] = get_term($request['name_var'],TAXONOMY_TYPE)->slug
— это при замене term_id на slug
3)'selected' => $_GET['name_var']
Форум: Плагины
Тема: фильтрация для custom type не всегда работаетВСЁ — РАЗОБРАЛСЯ!!!!
Привожу здесь тот пример который работает у меня:
//Добавляем пользовательскую таксономию add_action( 'init', 'build_taxonomies', 0 ); function build_taxonomies() { $args = array( 'hierarchical' => true ,'label' => 'Все типы' ,'query_var' => true ,'public' => true ,'show_in_nav_menus' => true ,'show_ui' => true ,'rewrite' => true ); register_taxonomy( TAXONOMY_TYPE, NAMEPOSTTYPE, $args ); } //Добавляем выподающий список типов недвижимости для фильтра add_action("restrict_manage_posts", "ki_property_dropdown_property_type"); function ki_property_dropdown_property_type(){ global $post_type; //global $typenow; //тоже значение что и $post_type global $wp_query; if ( is_object_in_taxonomy( $post_type, TAXONOMY_TYPE ) ) { $dropdown_options = array( 'show_option_all' => 'Вся недвижимость', 'taxonomy' => TAXONOMY_TYPE, 'name' => TAXONOMY_TYPE, 'orderby' => 'name', 'selected' => $_GET[TAXONOMY_TYPE], 'hierarchical' => true, 'depth' => 3, 'show_count' => true, // Show # listings in parens 'hide_empty' => false // показывать даже пустые пункты ); wp_dropdown_categories( $dropdown_options ); } } //этот код нужен чтобы работала фильтрация по пользоваттельскому типу add_action( 'request', 'my_request' ); function my_request( $request ) { if ( is_admin() && $GLOBALS['PHP_SELF'] == '/wp-admin/edit.php' && isset($request['post_type']) && $request['post_type']==NAMEPOSTTYPE ){ $request[TAXONOMY_TYPE] = get_term($request[TAXONOMY_TYPE],TAXONOMY_TYPE)->slug } return $request; }
Как это работает:
1) При создании пользовательской таксономии не забываем параметр ‘query_var’ => true — это добавит в запрос к базе данных новую переменную, по которой можно будет выбирать нужные нам записи, соответственно в массиве $request также появится переменная имя которой будет название вашей таксономии т.е. запись $request[TAXONOMY_TYPE] — станет актуальной.2) Создаём выпадающий список с перечнем значений нашей таксономии с помощью хука restrict_manage_posts и встроенной функции wp_dropdown_categories, на что обращаем внимание:
— ‘taxonomy’ и ‘name’ — должны быть равны и содержать имя вашей таксономии в моём случае TAXONOMY_TYPE;
— ‘selected’ я приравнял к $_GET[TAXONOMY_TYPE], т.к. значения списка являются целыми числами, а не значения slug, благодаря этому мой список помнит последнее значение;3)Вешаем функцию my_request(), которая перед тем как обратится к базе данных и выдать нужные нам записи на основе выбранного значения узнает значение slug, и подставит его вместо term_id.
Пример приведенный выше отказывался у меня работать пока я не поменял $request[‘term’] на $request[TAXONOMY_TYPE]. Подозреваю, что массив $request — формируется где то выше, и содержит все значения переменных которые получает сервер $_GET, а возможно и $_POST. Где это происходит я в коде WordPress не нашёл.
Этот код работает при фильтрации по нескольким пользовательским таксономиям!!!
Много информации почерпнул вот по этому адресу wordpress.stackexchange.com, пример большой, всё расписано, но и он, как есть, у меня не заработал (не заработала именно фильтрация).
Если есть у кого поправки к моему примеру, уточнения или если кто сможет более глубоко описать механизм фильтрации по пользовательской таксономии — будет очень здорово.
Форум: Плагины
Тема: фильтрация для custom type не всегда работаетГуру, кто опытный — объясните пожалуйста пример который здесь приведён. Пытаюсь сделать фильтрацию пользовательского типа в админке по пользовательской таксонимии, но по данному примеру не работает.
add_action('restrict_manage_posts','my_restrict_manage_posts'); function my_restrict_manage_posts() { global $typenow; if ($typenow=='projektid'){//если работаем с пользовательским типом $args = array( 'show_option_all' => "Show All Categories",//лейба когда фильтрации нет 'taxonomy' => 'kategooriad',//имя пользовательской таксономии 'name' => 'kategooriad'//имя поля формы ); wp_dropdown_categories($args);//тогда добавляем выпадающий список с перечнем пунктов нашей таксономии } }
Первая часть кода мне понятна — вешаем выпадающий список, как это работает можно подсмотреть в файле «class-wp-posts-list-table.php» с 213 по 223 строку.
А вот функция function my_request($request) мне не понятна. Что значит эта строка:
$request['term'] = get_term($request['kategooriad'],'kategooriad')->slug;
Откуда берёться массив $request, и как повлияет на фильтрацию записей присвоение такое выражение например
$request['term']=my-type
У меня не работает и вот с таким вариантом:
edit.php?kategooriad=my-type&post_type=projektid
где my-type это одно из значений моей таксономии, просто ни чего не фильтруется, как будто бы нет фильтра вообще.
vjpo спасибо за помощь, разобрался. В принципе я делал всё как по второй ссылке, только обратил внимание на код по которому к полю ввода добавляется календарик:
jQuery(document).ready(function(){ jQuery('.mydatepicker').datepicker({ dateFormat : 'yy-mm-dd' }); });
А я код брал с сайта http://jqueryui.com — там вот такой пример:
$(function() { $( "#datepicker" ).datepicker(); });
В этом то и была причина. В интернете нашёл что, чтобы работала функция $() в различных CMS лучше оборачивать JQuery скрипты вот в такую конструкцию:
(function ($) { // All your code here }(jQuery))
или везде менять $ на jQuery
Так что теперь календарик версии jquery-ui-1.8.15 работает со стандартными библиотеками jQuery, которые имеются в WordPress 3.2.1. Всё работает без конфликтов.
Форум: Проблемы и решения
Тема: подключение скриптов jqueryВ продолжение темы о подключении jQuery
Есть WordPress 3.2.1
Для произвольного поля дата страницы в админке нужно было сделать datepicker, так как в \wp-includes\js\jquery такого модуля не нашёл, то скачал с сайта последнюю версию jQuery UI, в листинге своего плагина я указал:
/* Цепляем более новую библиотеку jquery 1.6.2*/ wp_deregister_script('jquery'); wp_register_script('jquery', ("http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"), false, '1.6.2'); wp_enqueue_script('jquery'); /* Цепляем код диалога и календарика */ wp_register_script('jquery-ui-dialog.datepicker', (agro_tender_PLUGIN_URL."js/jquery-ui-1.8.15.dialog.datepicker.js"), false, '1.8.15'); wp_enqueue_script('jquery-ui-dialog.datepicker');
Столкнулся со следующей проблемой — всё работает, кроме конструктора Меню в разделе Внешний Вид, а точнее не работает drug-and-drop, консоль JS выдаёт вот такое сообщение:
load-scripts.php:11 - Uncaught ReferenceError: jQuery is not defined jquery-ui-1.8.15.dialog.datepicker.js:29 - Uncaught TypeError: undefined is not a function
Если оставить jquery 1.6.1 — который идёт по умолчанию в этой вервии WordPress то не работает datepicker, консоль JS выдаёт такую ошибку
Uncaught TypeError: Property '$' of object [object DOMWindow] is not a function
Хотя на сайте http://jqueryui.com/ сказано что jQuery UI 1.8.15 должен работать с jQuery 1.3.2+
Буду признателен за помощь.