Сама тема устарела и обновлений не было а wordpress обновленный, последняя версия
Я писал в своем ответе, повторюсь еще раз - версия WordPress, как и сам WordPress тут вообще ни при чем - он полностью совместим с PHP7 уже давным давно. Проблема исключительно в теме, в устаревшем коде.
> 1) ничему вы в итоге не научитесь. Выучите WP - будете знать только WP.
а как вы объясните то, что я начинал с WP, и до сих пор использую его регулярно, но при этом освоил PHP, Symfony, Laravel, Phalcon и еще массу других решений из мира PHP, не говоря уже о десятке других языков программирования. Сейчас вот Swift изучаю, например. И среди моего круга общения (онлайн и оффлайн) таких WP-разработчиков с широчайшим кругозором - масса.
> 2) код WP сделал в худших традициях говнокода
Вы крайне неосторожно путаете 2 принципиально разных понятия - говнокод и легаси код. Если вы не видите разницы между этими понятиями, у меня для вас плохие новости.
Max Medar, ну вот, как я и предполагал, тут есть таки offset, а значит как минимум некое подобие пагинации/порционности. А значит, usort будет давать именно те проблемы, которые я описал в комментарии выше.
there4, у вас тут кастомный запрос к БД. Перепишите его чтобы сортировал по алфавиту, а не по post_type.
Nikita Shchypylov, нету, потому что тут еще "смотря с какой стороны посмотреть". Например, а почему разбивка front/back? Почему не core/app/public/cache? Почему не framework/app/assets/cache? И тд. Во многих случаях, грань между фронтом и беком не так видна и не так важна.
Stanislav Pugachev, +1 к запрету пушить в мастер. В мастер - только через pull request, который прошел тесты, code review, тестирование на деве и approved другими релевантными людьми из команды.
Еще как важно, это по сути противоречащие друг другу вещи. Вы комментом выше прямым текстом говорите "наследование = легкость модификации", тогда как все наоборот - "композиция = легкость модификации" и "наследование = прямой путь к сложностям модификации"
1. Наследование как бы уже давно скорее антипаттерн, поскольку усложняет модификацию
2. Легкость модификации достигается грамотной композицией
3. В контексте javascript это все вообще весьма забавно
4. Adamos реально дело говорит, про ООП на концептуальном уровне
Насколько пустые? :) Пустые строки, null, 0, false etc? От того значения, которое вернул update_post_meta() зависит что же пошло не так. Эта функция (как и многие другие) в разных ситуациях возвращает разные данные (и разные типы).
Но нужно ли в данном случае ТС-у делать правильно?
Может я конечно задрот (на самом деле да), но имхо правильно надо делать всегда, даже если конкретная задача / ситуация / проект не требуют этого прямо. Это вопрос личной гигиены и качественного роста собственных скилов.
Max Medar, ну, во-первых потому что метод очевидно тупо проксирует на get_posts, формируя его из полученных параметров (тип поста, пользователь, сколько записей). Метод не является final и не вижу проблем почему вдруг нельзя менять его поведение. Можно захардкодить сортировку, можно передать ее дополнительным параметром. В чем проблема изменить метод и его сигнатуру при необходимости? Религия?
Во-вторых, лимит вполне возможно может использоваться для постраничного/порционного вывода, или даже для простого ограничения записей числом Х, но таким образом сортировка будет применяться к каждой порции записей независимо. То есть, вы на выходе будете получать не "все мои избранные по алфавиту", а Х моих избранных по дате, но отсортированы по алфавиту. Надеюсь, различие в получаемом списке просматривается. Как реально топикстартеру надо - это уже другой вопрос, но то что здесь имеет место неочевидный потенциальный баг - очевидно.
В третьих, идеологически правильнее делать сортировки максимально близко к источнику данных, тем более если он отлично умеет это делать. Зачем лишний оверхед на php?
В четвертых, просматривается еще один очень неочевидный момент - у топикстартера на выводе присутствует кнопка "удалить из избранного". После удаления не совсем понятно что происходит - подтягивается новый список целиком? Длина списка просто уменьшается? Подтягивается 1 дополнительный элемент? Или может есть буфер из нескольких элементов, который позволит просто дозаполнить список? Сам по себе этот неочевидный момент не критичен сейчас, но понимая его может появиться дополнительное понимание, можно ли обойтись простой сортировкой на выводе, или все же лучше сделать выборку правильно изначально?
Имхо, данные надо максимально правильно выбирать из БД изначально, а не строить костыли.
Александр Соболев, ACF устроен проще (хотя, как посмотреть): поля и их свойства - это custom post type. Значения этих полей в postmeta пишутся 2мя записями - как раз в виде трюка с подчеркиванием. "Служебное" поле _fieldname содержит уникальный ID поля (не ID в базе в классическом понимании), по которому ACF и получает все свойства поля, а поле fieldname уже содержит само значение. Впрочем, у ACF есть и альтернативные подходы - сами поля можно хранить как JSON, так и в виде PHP-кода. Оба метода будут быстрее, плюс удобнее в разработке. Особенно последний, поскольку получается и кеширование опкода, и полноценное версионирование, и удобство работы, потому что можно прям на лету все генерить, при необходимости - php из php.
RigidStyle, у вас одна и та же база данных, только префиксы разные для всех таблиц, кроме *_users / *_usermeta. Эти две таблицы используют один и тот же префикс, а значит изменения на одном сайте будут отражены сразу же и на другом.
на всех остальных сайтах сети,
а вот по поводу СЕТИ пожалуйста подробнее. При чем здесь сеть сайтов, насколько я понял у вас же не multisite?
Я писал в своем ответе, повторюсь еще раз - версия WordPress, как и сам WordPress тут вообще ни при чем - он полностью совместим с PHP7 уже давным давно. Проблема исключительно в теме, в устаревшем коде.