Иван, вот любите вы странные решения)) Не первый раз уже вижу у вас использование create_function, что является крайне нехорошей практикой (применительно к PHP вообще, не WP). Смотрим документацию:
Caution
This function internally performs an eval() and as such has the same security issues as eval(). Additionally it has bad performance and memory usage characteristics.
Используйте обычную анонимную функцию и забудьте про create_function.
Иван Козлов: Если говорить про машинный код, то это нано-оптимизация, от которой толку ноль. Прогоните через профайлер и посмотрите узкие места. Упомянутый вами "путь дзен" - это совершенно ненужная якобы оптимизация. А вот удобство и гибкость она рубит на корню, ибо в функции есть хук, а в вашей переменной его нет. Значит, значение, возвращаемое функцией я могу фильтровать при определенных условиях, а вашу переменную - только перезаписывать. Грубо и неэффективно. Я уж молчу о том, что у переменной должен быть контекст и любой сторонний разработчик должен сразу понять что эта переменная означает, где она определяется, какое значение содержит, в каком виде / формате, и не перезаписывает ли ее случайно код из другого места...
The_Lars: Конечно можно. JetPack упомянутый правда не подойдет. А руками все это прекрасно делается, тут WordPress вообще ни при чем, галереи он вам позволяет делать из коробки. А вот как эта галерея выглядит и работает на странице - это уже вопрос к теме и html+css
Влад: Там есть код, который вы подключаете на фильр locale, и включаете нужный язык. Это, как говорится, "куда копать". А чтобы реализовать вашу задумку, надо сделать эти кнопочки / селект, придумать как эти данные (выбор пользователя) передавать / хранить - куки, localstorage, передавать в GET и тд. А потом уже, в зависимости от метода хранения, забираете оттуда данные и подставляете их в этот фильтр.
Впрочем, я уверен что если хорошо поискать в репозитории wordpress.org/extend/plugins то найдется уже что-то готовое.
ligisayan: Ну почему же, мы изолировали проблему до виджета Visual Composer. Но без кода виджета / ссылки на его документацию дальше мы ничего не сможем сделать.
Vladislav Apalkov: У вас рубрики используются как-то? Если нет - вместо "Без рубрики" создайте "Горизонтальные" и "Вертикальные" - 2 рубрики (термина, технически). Их и отмечайте (присваивайте) при создании / редактировании товара.
exceptional: У меня самая свежая и все работает как надо. Там в 5.5.0 добавлена поддержка новой таблицы wp_termmeta, и теперь данные туда пишутся. Не уверен, что именно из-за этого, возможно еще раньше был баг - я не помню прям все чейнджлоги, а версия у вас достаточно старая уже. Обновите плагин и пробуйте еще раз.
ligisayan: Вот с Visual Composer и надо было начинать. У вас нет никакой проблемы с WordPress и ЧПУ URL как таковыми, есть проблема с тем, как вы пытаетесь это все собрать и как это реализовано в VC.
> архив-то есть like2.likemedia.by/portfolio_page
Естественно есть, его не может не быть, о чем я выше и писал.
> но он без фильтра
Естественно, потому что ваш фильтр - это произвольный дополнительный функционал, предоставляемый Visual Composer.
> и выводится в неподобающем виде
Это потому что для него нужный темплейт не сделан или сделан в неподобающем виде.
> а вот эта страница, которая должна за фильтр отвечать - не выводит ничего
Потому что это - страница. Она выводит контент страницы. Она выводит ровно то, что должна выводить. По идее, она должна вывести вот этот виджет Visual Composer, который, в свою очередь, запросит этот ваш custom post type и выведет на этой странице. Почему он этого не делает - понятия не имею. Это вопрос скорее в поддержку разработчиков этого виджета.
order - это только ASC / DESC - он же порядок, он же по возрастанию или по убыванию. А сама сортировка по какому-то параметру определяется с помощью orderby.