Еще как важно, это по сути противоречащие друг другу вещи. Вы комментом выше прямым текстом говорите "наследование = легкость модификации", тогда как все наоборот - "композиция = легкость модификации" и "наследование = прямой путь к сложностям модификации"
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?
Алекс, что из перечисленного у вас чем является? обычные записи и все в контенте? или это custom post types? или это все метаданные (post_meta) для одной записи?
bobongida97, ну, теги то могут быть в hidden полях, таким образом тоже передаваться. Если у вас все необходимые данные в полях формы (обычные и hidden), то js по сути и не нужен - сабмит по GET сам передаст все значения. Если хотите через js - вместо сборки строки запроса вручную используйте https://api.jquery.com/serialize/ и делайте переадресацию. Только не забудьте в этом случае про preventDefault.
+1 за этот плагин, но если таблицы нужны исключительно как контент, то вполне можно втулить обычный визуальник а для него плагин TinyMCE для таблиц. Будет работать как часы, занимая всего одну (точнее, 2) строчку в мета на 1 таблицу. В общем, нужно по задаче смотреть.
Еще как важно, это по сути противоречащие друг другу вещи. Вы комментом выше прямым текстом говорите "наследование = легкость модификации", тогда как все наоборот - "композиция = легкость модификации" и "наследование = прямой путь к сложностям модификации"