Мені потрібно створити спеціальні мета-поля публікацій для мого користувальницького типу публікації "Слайд-шоу" (цей тип публікації вже створено). Кожне метабокс вміщатиме вміст у кожному слайді та зберігатиме його у відповідні спеціальні поля. Кожне метабокс має містити такі поля:
- Заголовок (текстове поле)
- Зображення (або текстове поле для URL-адреси зображення, або в ідеалі спадний список із мініатюрами зображень, прикріплених до публікації)
- Вбудувати код (область тексту)
- Опис (wysiwyg)
- Сховати слайд (Поставити прапорець, щоб тимчасово приховати слайд, не видаляючи його)
- Видалити слайд (кнопка, яка видаляє вміст метаполів публікації, які були заповнені цим слайдом)
Я також хотів би десь кнопку, яка дозволяє мені "Додати слайд", тому при натисканні на нього додається інша спеціальна мета поле "Слайд", яка є дублікатом першого, але додає додаткове число до кожного спеціального метаполя публікації. Наразі у мене є лише 15 метабокс, і шаблон слайд-шоу налаштований таким чином, що якщо заповнено лише 5 метабок, то відображається лише 5 слайдів.
Нарешті, я хотів би мати змогу повторно замовити слайди, будь то "Перетягування" чи іншим текстовим полем, у яке я можу набрати номер замовлення.
Я отримав його майже там, де мені це потрібно, завдяки плагіну "Більше полів" та деякій допомозі з коду від Rarst. З плагіном "Більше полів" у кожному метабоксі є наступні поля:
- Заголовок (текстове поле)
- Зображення (спадний список зображень, доданих до публікації)
- Вбудувати код (область тексту)
- Опис (wysiwyg)
- Сховати слайд (Поставити прапорець, щоб тимчасово приховати слайд, не видаляючи його)
Ось скріншот того, як я налаштував його через плагін "More Fields":
Проблема з цим полягає в тому, що немає можливості видалити слайд після його створення, оскільки "Більше полів" ніде не використовується <?php delete_post_meta($post_id, $key, $value); ?>
. Інша проблема плагіна полягає в тому, що він занадто ненадійний і часто зривається з оновленнями.
Мені вдалося реалізувати подібне рішення зі своїми власними метабоксами, що включає:
- Заголовок (текстове поле)
- Зображення (текстове поле для URL-адреси зображення)
- Вбудувати код (область тексту)
- Опис (область тексту)
- Сховати слайд (Поставити прапорець, щоб тимчасово приховати слайд, не видаляючи його)
З цією реалізацією я не можу привести в дію кілька полів TinyMCE або спадне вікно зображення. Код TinyMCE здається працювати , поки я не додати код, створювати інкрементні копії першого METABOX в цей момент я отримую це право помилки над полем , де кнопки TinyMCE повинні бути: Warning: array_push() [function.array-push]: First argument should be an array...
.
Крім того, зараз я покладаюся на своїх авторів, щоб вони знали, щоб розмістити в EITHER відео чи зображення для кожного слайда, і це нормально, але, можливо, краще мати перемикач, який дозволяє їм вибрати, який слайд - це, можливо, за замовчуванням зображення), яке прив'язується до умовного оператора відображення у шаблоні слайд-шоу.
Я обробляю завантаження зображень за допомогою вбудованого вікна "Пропоноване зображення" на бічній панелі, хоча я б не заперечував проти спеціального метабоксу, який просто сказав "Завантажити зображення" у верхній частині панелі запису.
Зрештою, я шукаю слайд-шоу, подібне до цього: http://www.nytimes.com/slideshow/2010/08/10/science/20100810angier-1.html . Я хочу, щоб мій також міг мати відео як вміст слайда замість зображення. Мені потрібна інтуїтивна та зручна у використанні панель адміністратора для моїх авторів (вони не дуже підковані та не надійні за допомогою html та / або шорт-кодів). На випадок, якщо це не зрозуміло з прикладу, кожен слайд повинен генерувати новий перегляд сторінки.
Упорядкування Drag'n'Drop не є пріоритетним, але це було б круто. Я знайшов плагін, який справді добре справляється з цим: SlideDeck . На жаль, плагін не відповідає моїм потребам, але те, як вони обробляють впорядкування слайдів, досить гладке. Це окремий метабокс на бічній панелі, який дозволяє перетягувати слайди навколо в порядку, який вам подобається. Це також спосіб додавання слайдів, натиснувши кнопку "Додати слайд", яка додає ще один метабокс слайдів на панель запису. Ось скріншот:
Ви також можете побачити більше скріншотів цього дій у сховищі Wordpress .
Ось весь мій код:
Функції, що налаштовують мій тип публікації слайд-шоу та пагін сторінки слайд-шоу: http://loak.pastebin.com/g63Gf186
Оригінальний код від DeluxeBloggingTips.com (DBT), на якому я базував свої метабокси: http://loak.pastebin.com/u9YTQrxf
Версія коду DBT, яку я змінив, дає мені додаткові версії того ж метабокса: http://loak.pastebin.com/WtxGdPrN
Змінена версія коду DBT, яку створив Кріс Бербрідж, щоб дозволити кілька екземплярів TinyMCE: http://loak.pastebin.com/Mqb3pKhx З цим кодом TinyMCE працюють.
Моя модифікація коду Бербріджа, що намагається включити мою інкрементацію, і поле, яке дозволяє вибрати зображення зі спадного списку всіх зображень, доданих до публікації: http://loak.pastebin.com/xSuenJTK У цій спробі TinyMCE порушено, і випадаюче не працює.
Це, мабуть, не має значення, але про всяк випадок, коли вам цікаво, ось код, який я використовую для витягування коду з вбудованого мета мета користування, змінення його розміру та вставки у публікацію: http://loak.pastebin.com / n7pAzEAw
Це відредагована версія оригінального питання, яка відображає поточний стан проекту та відповідає на питання, розміщені в коментарях. Дякуємо Chris_O за те, що він поставив цю суму . Крім того, дякую Рарсту та Джастіну за те, що вони мені допомогли багато чого на форумі ThemeHybrid.com . Я витратив на це години і години і я застряг (я пару годин провів один на це питання). Будь-яка допомога буде дуже вдячна.