Тарасов Роман, функцию можно немного оптимизировать, избавиться от $lib массива и связанных с ним действий. Не обязательно держать все буквы алфавитов, можно выводить нужною букву только при необходимости.
/** * Функция возвращает алфавитный указатель указанной категории * @version 2.0 * @param int $cat - id категори **/ function get_category_alphabet(int $cat = 1) { $posts = get_posts([
'orderby' => 'title', 'order' => 'ASC', 'category' => $cat, 'numberposts' => 999, ]);
$prev_letter = $out = '';
foreach ($posts as $post) { if (!$post->post_title) { continue; }
echo get_category_alphabet(1); // тут вместо 1 указываете id нужной категории
---------- Добавлено 06.12.2018 в 09:59 ----------
Без учета комментов, размер функции почти в 2 раза уменьшился. Избавились от массива $lib, теперь не нужно вводить в программу все буквы, и от 1 цикла.
да, так и есть :) С таксономией/ПП распределение не скрыто от администратора, возможно именно это и нужно. Даже если хуком save_post ставить терм/произвольное значение, все равно админу нагляднее будет.
SeVlad: А в твоём решении не всё однозначно с нагрузкой.
Да, в моем решении группировка постоянно выполняется, в твоем решении только 1 раз будет установлен терм или произвольное значение. Это лучше.
---------- Добавлено 05.12.2018 в 17:24 ----------
SeVlad: А обновить посты можно и массово).
Да, я это понимаю, но нужно соответствующее решение. Найти плагин который по первой букве из названия распределит записи или нанять программиста, чтобы он это сделал.
SeVlad: Если это нужно то произвольные поля или таксономия будет куда логичнее и проще.
так для каждой записи нужно ставить букву, а это уже сделано. Меньше движения получится.
---------- Добавлено 05.12.2018 в 16:49 ----------
Еще плюс в первом подходе в том, что если статьи добавлены пропадает необходимость в их редактировании для установки нужной буквы. Опять экономия на движении.
Sitealert: Так мы получим выборку по названиям записей.
да, я думаю именно это и нужно ТСу. Например нужно вывести записи из категории "Справочник запчастей" и сгруппировать эти записи по первой букве из названия как на скрине. Но на скрине показана группировка категорий, нам же нужно сгруппировать записи.
Тарасов Роман: Думаю должно быть лучше, чем с плагином
pozitiFFF: Сейчас уже смотрю в сторону сайтов фрилансеров, может за тыс. 10 получится сделать всё как я хочу чужими, но умелыми руками) А в дальнейшем когда запущу уже в случае чего и дорабатывать самому.
Supersheva, в теории нужно следать за сменой статуса заказа. Если статус заказа был установлен completed, значит для товаров из списка заказа нужно уменьшить количество запаса ровно на столько, сколько указано в заказе. Пример:
function woo_change_product_quantity($order_id) { $order = wc_get_order($order_id);
foreach ($order->get_items() as $item_id => $item_data) { $product = $item_data->get_product();
Charli, как заметил burunduk, кешируйте результат выборки на сутки/неделю/месяц. Каждый запрос фильтра проверяйте на наличие и актуальность кеша. Если все ок, отдавайте результат из кеша. Если нет, делайте запрос к БД, сохраняйте результат в кеш и отдавайте клиенту. Конечно если эти махинации действительно необходимы.
Тарасов Роман, функцию можно немного оптимизировать, избавиться от $lib массива и связанных с ним действий. Не обязательно держать все буквы алфавитов, можно выводить нужною букву только при необходимости.
---------- Добавлено 06.12.2018 в 09:59 ----------
Без учета комментов, размер функции почти в 2 раза уменьшился. Избавились от массива $lib, теперь не нужно вводить в программу все буквы, и от 1 цикла.
ИМХО куда элегантней и безопаснее
да, так и есть :) С таксономией/ПП распределение не скрыто от администратора, возможно именно это и нужно. Даже если хуком save_post ставить терм/произвольное значение, все равно админу нагляднее будет.
А в твоём решении не всё однозначно с нагрузкой.
Да, в моем решении группировка постоянно выполняется, в твоем решении только 1 раз будет установлен терм или произвольное значение. Это лучше.
---------- Добавлено 05.12.2018 в 17:24 ----------
А обновить посты можно и массово).
Да, я это понимаю, но нужно соответствующее решение. Найти плагин который по первой букве из названия распределит записи или нанять программиста, чтобы он это сделал.
Если это нужно то произвольные поля или таксономия будет куда логичнее и проще.
так для каждой записи нужно ставить букву, а это уже сделано. Меньше движения получится.
---------- Добавлено 05.12.2018 в 16:49 ----------
Еще плюс в первом подходе в том, что если статьи добавлены пропадает необходимость в их редактировании для установки нужной буквы. Опять экономия на движении.
Так мы получим выборку по названиям записей.
да, я думаю именно это и нужно ТСу. Например нужно вывести записи из категории "Справочник запчастей" и сгруппировать эти записи по первой букве из названия как на скрине. Но на скрине показана группировка категорий, нам же нужно сгруппировать записи.
Думаю должно быть лучше, чем с плагином
Если я вас правильно понял, будет лучше.
DominantBlogge, как я понял, этот файл
http://ngrinko.com/wp-content/cache/...47464ba1e7.css
загружается на твоем сайте и домен сайта не ngrinko.com ?
Как оценить верстальщика?
оценивайте на соответствие техническому заданию. Например, если в ТЗ вы не требуете кроссбраузерности, она не обязательно будет реализована.
Какие вопросы задать перед тем как отдать проект в работу?
Те, которые вам нужны. Например, если вам нужна адаптивность, значит спросите об адаптивности.
Я верстку знаю в общих чертах (могу что то простенькое сверстать)
а вот уже всякие там шаблонизаторы и SASS для меня темный лес.
Вам не обязательно вникать в реализацию. Вы можете использовать любый объект в этом мире не вникая в детали реализации, так же и с версткой.
Сейчас уже смотрю в сторону сайтов фрилансеров, может за тыс. 10 получится сделать всё как я хочу чужими, но умелыми руками)
А в дальнейшем когда запущу уже в случае чего и дорабатывать самому.
Да. Так обычно и делается.
Supersheva, в теории нужно следать за сменой статуса заказа. Если статус заказа был установлен completed, значит для товаров из списка заказа нужно уменьшить количество запаса ровно на столько, сколько указано в заказе. Пример:
Charli, как заметил burunduk, кешируйте результат выборки на сутки/неделю/месяц. Каждый запрос фильтра проверяйте на наличие и актуальность кеша. Если все ок, отдавайте результат из кеша. Если нет, делайте запрос к БД, сохраняйте результат в кеш и отдавайте клиенту. Конечно если эти махинации действительно необходимы.
Тарасов Роман, смотрите как можно сделать. Создаете массив с буквами алфавита:
затем получите все записи нужной категории и пройдитесь по этим записям сохрания запись в $lib нужной буквы:
теперь можно выводить алфавитный указатель:
Если все это дело, для многоразового использования, оформить в функцию, будет так выглядеть: