Влад Волынец: inner join будет грузить сильнее) Я бы написал плагин, который удаляет не нужные meta(не нужный meta - это те, которые принадлежат уже удаленной записи) и периодически его запускал.
Игорь Воротнёв: я согласен и просто упустил этот момент так как в includes/wc-template-functions.php придется менять код тоже) его как я понимаю в папку с шаблоном не вставишь)
Сергей: Далее чтобы редактировать страницу пользователю надо кликнуть вверху на строчку редактировать страницу и отредактировать нужные поля. Очень удобно. Поддерживаются различные типы полей.
Сергей: допустим нам нужно добавить страницу с url site.ru/landing. Для этого мы создадим страницу со slug landing и шаблон page-landing.php,в который мы вставим верстку. Далее мы устанавливаем плагин advanced custom fields и в нем создаем новую группу полей для нашей страницы и указываем что эти поля будут относится только к данной странице. Создаем количество и типы полей которые нам необходимы для нашего шаблона и далее заменяем в шаблоне куски контента на функции вывода контента. Сама функция get_field() ^))
Игорь Воротнёв: Кому как удобнее на самом деле. get_post_meta средство wordpress. ACF использует post_meta - структура wordpress. Соответственно если не требуется особого формата вывода, то get_post_meta лучше. если требуется, то get_field.
Я лично сторонник использовать базовые вещи так как они работают в большинстве случаев. Дополнительный написанный функционал как функции плагинов использую только в особых случаев. Так код поддерживать легче.
Роман Полянский: Точно не подскажу сейчас. Сам хеш генерируется функцией wp_hash_password которая находится в wp-includes/pluggable.php. Эта функция использует класс PasswordHash, код которого в wp-includes/class-phpass.php
Владислав: Попробуй поставить чистый wordpress на этот хостинг и новую базу. Если будет все норм. Пробуй загрузить свою версию сайта и подключится к новой бд. Если работает, то пробуй подключится к старой бд. Так мы выясним где ошибка в бд или в коде(может какой плагин гонит или еще что).