Удаленно-произвольно|Произвольные поля через шорткод

Давайте пофантазируем.

Предположим, Александр пытается отправить через десктопный клиент LiveWriter пост в Вопрдпресс, но темка, под которой сидит один из его блогов, предполагает, что к каждому посту будет добавлена картинка в духе профессионального блоггинга. Проблема в том, что эта картинка добавляется через произвольные поля, о которых LiveWriter Александра даже и не знает.

Для того, чтобы опять управлять произвольными полями так, как ему вздумается, надо просто установить маленький плагин Customfields Shortcode.

После этого, перед отправкой поста ему надо добавить в пост (лучше в конец) один или несколько таких псевдотегов (шорткодов):

[custom name="имя_произвольного_поля" value="значение_произвольного поля"]

или комментариев вида:

<!--custom name="имя" value="значение_произвольного поля"-->

После чего смело отправить пост. И, о, чудо, в посте само определится нужное произвольное поле, которое можно будет изменить либо через админку, либо через тот же клиент, просто поменяв значение поля value.

Можно и удалить уже имеющееся произвольное поле, сделав значение пустым:

[custom name="имя_произвольного_поля" value=""]
<!--custom name="имя" value=""-->

А можно и проще, любой из этих вариантов:

[custom name="имя"]
<!--custom name="имя"-->

При этом изменения будут доступны всем посетителям сразу, без лишних телодвижений — плагин подключается к штатным механизмам, поэтому и кеш обновляется своевременно.

И неважно даже чем пользуется Александр — управление через шорткоды становится доступным через любой механизм постинга — через админку, клиенты, через почту.

Один маленький нюанс — комментарии <!--custom--> использовать все же лучше. В случае отключения плагина они не станут видны (даже если код вставлен с помощью визуального редактора, который заменяет угловые скобочки на HTML-сущности), тогда как квадратные скобочки вылезут наружу.

{35 комментариев} Подписка на комментарии

Всё-таки такой синтаксис удобнее, в который раз убеждаюсь:

<!--custom name="…" value="…"-->

@Vladimir: черт, точно. сейчас добавлю второй вариант.

А, нет, тут почти без разницы — добавление через визуальный редактор таких комментариев всегда превращает скобочки в сущности. Т.е. в половине случаев эти псевдокоды все равно вылезут наружу.

В общем, до записи в базу этот косяк можно править. Теперь доступен и вариант с коментариями (как я, черт, о них мог забыть)

Что по мне, то визуальный редактор — зло :-)

@Vladimir: что по мне, надо рассчитывать на тех, кто его не выключает =(

Александр говорит что «шоке!»

/можно на сайт сторонних разработчиков под livewriter запостить это.

Я сильно-сильно отказался от кастом-филдс в пользу использования нативных Wordpress аттачей.

Отлично работает — даже при постинге через LW.

Единственная проблема возникает, когда изображение в посте есть — но как сущность, а не как реальность, данная нам в ощущениях атачей Wordpress.

Как пример — просто фотка с flickr уже не будет приложением в WP, поэтому надо наверное изыскать другой метод и у меня уже есть наработка

@blogomober: смысл? это не плагин для livewriter'а.

@автор, ну я когда заморачивался как это сделать, то почитал англоязычные блоги и форумы. Они очень ждут такой фичи в LW, и можно пока как альтернативу предложить.

@blogomober: ссылки, если остались, дай, плиз. Я пока запрос на добавление плагина на офсайт сделаю. А вообще надо будет покопаться в самом LW, к нему же вроде плагины можно писать.

Залил на оф сайт вордпресса, с английским описаловом (ой, косячным!) wordpress.org/extend/plug...stom-shortcodes/

Можете делиться с англоязычными друзьями.

Интересно, но непонятно. В описании — требования — wp202 или выше. Но плаг уже на 233 отказался работать? Так он мульти или только для последних версий?

@awtor: вообще обновляться надо, но — мой косяк :). По привычке поставил, а посмотреть, с какой версии там шорткоды появились, забыл. А вообще, условные комментарии при этом должны работать. Или плаг выдает какую-то ошибку?

@awtor: кстати, да, — интересно, а на 2.3 нормально будет работать ВП Типограф — iskariot.ru/wordpress/typo/? Если не сложно, попробуете?

1. Выдает сразу ошибку в add_shortcode ('custom','

А у сеня как на грех еще пара блогов на 233. Плагин рульный, не надо после лива лезть на блог и менять еще поля оллинван и часовых и прочих нужных полей.

2. Скачал, попробуем.

Ну я не понимаю, зачем такая старая версия?!

Плагин для кастомов обновил. Вот только в старых версиях можно будет пользоваться только условными комментариями, но не [custom].

Хехе, а типограф тоже будет ругаться — найди строчку с add_shortcode и тупо ее сотри, если что %)

1. wp233 еще очень распространен. Не все желают переходить на тормознутую админку 27.

2. В чем глубокий смысл add_shortcode и

function cfsc_remove_shortcode ?

не проще ли

add_filter ('the_content','cfsc_remove_shortcode');

function cfsc_remove_shortcode ($content){$content=preg_replace ('~\[custom\s(.*?)\]~i','',$content);return $content;}

по аналогии. И работает и с 233 и с 271

Для 233 чуть еще изменить

else{add_post_meta ($post_ID,$name,$value,true) or update_post_meta ($post_ID,$name,$value);}

И все проблемы совместимости решены + можно использовать и [ и -->

3. Неясно применение " и ' Если в псевдо указать ' — плагин не замечает изменений. В то же время если в тексте будет ссылка с "" плагин вставку обрежет по ссылке. Изврат получается — псевдо только в " а ссылки в '

Об этом я уже думал — сменю.

Не понял примера с мета — в 233 произвольные поля работают как-то иначе?

И про кавычки — имеешь в виду те кавычки, что используются в качестве ограничителей в атрибутах шорткода и условного комментария?

Так. Обновил — убрал шорткоды полностью (а, к черту, в типографе тоже на прег-реплейсы перейду), проверку на добавку произвольного поля тоже сделал, ну и в шорткодах можно теперь использовать разные кавычки как в html — т.е. если надо, чтобы в значении была двойная кавычка, его можно взять в одиночные.

Спасибо за ваш интерес и помощь %)

Да, если просто апдейт — wp233 не воспринимает изменение и добавления.

С кавычками — большой фенкс.

Ну, было бы за что. Сам искал похожее. Сразу куча

проблем отвалилась.

@awtor: привет. на своем 2.3 не протестишь исправленный плагин кросспоста? iskariot.ru/wordpress/remix/#lj-crosspost — только посмотреть, правильно ли добавляются кнопки в визуальный редактор? Буду благодарен %)

Здравствуйте!

Ваш плагин — просто сокровище для тех, кто использует WLW. Но у меня он не заработал :( Не получилось добавить произвольные поля ни в 2.6, ни в 2.7 версии Wordpressa. Не подскажете, возможно что-то надо поменять в коде плагина?

@Dashline: только что проверил — телепаты еще в отпуску и все прекрасно работает.

Ой, как я рада, что вы со мной общаетесь :о)

Я просто даже не знаю, как описать проблему, потому что просто нет никакой реакции у программы.

Ведь после установки-активации этого плагина в WP, а затем отправки записи из WLW с шорткодом внизу вида <!--custom name="имя" value="значение_произвольного поля"--> , когда я захожу потом админку и смотрю запись, у нее ведь должны быть заполнены дополнительные поля?

У меня было подозрение, что что-то с кодировкой, но я полный профан и в коде почти совсем не разбираюсь. Вот строка из кода плагина — тут с кодировкой все хорошо?

$content=preg_replace('~(\|>)~i','<!--custom \\2-->',$content);

@Dashline: да, должны быть. Было бы хорошо, если бы вы привели бы мне скриншоты, что вы отправляете через ВЛВ, и что видно при редактировании поста. И попробовали прямо через админку добавить, скажем, такое: <!--custom name="вав ав" value="ва вава"--> (без кодов обертки code, конечно)

Кодировка здесь совершенно не причем.

Исходный кусок должен быть вот таким (но это, наверное, в комментарии сожрало, т.к. не поставили тег кода):

preg_match_all('~(\<|<)!--custom(.*?)--(>|>)~i',$post->post_content,$matches2);

Более того, полагаю, что вставляли вы не HTML сущности, а непосредственный код? То есть вставка комментария происходила в закладке «Просмотр исходного кода»

Какое счастье, у меня все заработало! :)

Простите меня за беспокойство. Я просто поленилась впечатывать код с клавиатуры и скопировала его из окна фаерфокса из пояснений к плагину в админке.

И не посмотрела, что видно после этого в самом WP. А там почему-то было по четыре дефиса с каждой стороны вместо двух. Извините меня за блондинистость. Полезла скриншот делать и увидела.

После впечатывания всех символов шорткода с клавиатуры все сразу заработало.

Огромное спасибо вам за плагин — он уникален, весь буржунет стонет от невозможности произвольные поля заполнять из WLW, но никто кроме вас не написал такой полезной штуки. И отдельное спасибо отзывчивость. С вашего позволения напишу о нем со ссылкой на вас у себя в блоге.

@ioni: это не должно играть никакой роли вообще, так и задумывалось, что можно вставлять через что угодно.

@Dashline: ситуация с четырьмя дефисами странная, конечно, но ладно :). Не за что, пользуйтесь на здоровье, пишите. Если бы мне не было лень, сам бы пропиарил на паре буржуфорумов (был бы благодарен за ссылки на стоны).

@автор: ссылки на стоны покидаю завтра, не сохраняла, но восстановлю.

когда искала плагин — начала с буржунета. там каждый изворачивается, как может (видела очень странный вариант, например — www.kisaso.com/custom-fie...ows-live-writer/).

но большинство просто приходят, к примеру, в очередной обзор по WLW и пишут про невозможность работать с произвольными полями, на что им рекомендуют обычно «сохранить черновик с дальнейшим редактированием в сети» (есть такая опция у WLW).

@Dashline: ага, спасибо.

А я тут подумал такую мысль — смысл плагина в том, чтобы добавлять custom field, так?

Так отчего бы после этого не удалить сам шорткод из поста?

Кстати, да, как-то мне такая мысль раньше в голову не пришла. (с другой стороны, если это делается для сторонних клиентов — то в них как раз будет непонятно, есть ли кастомфилд у поста, или нет; ну я не знаю, есть ли в таких клиентах возможность редактирования, или нет, сам ни разу не пробовал)

Сторонние клиенты, да, как же.

Можно совсем уж зверский функционал тогда встраивать — отдавать ошибку, если (после добавления) встроенное поле не присутствует (или не равно тому, чему надо).

Кстати, как обстоит дело с повторяющимися полями с одинаковыми именами? Я просто спрашиваю, мне не особенно это надо (в отличие от верхнего варианта, когда я бы предпочел чистый код без комментариев в нем — а том поля у меня иногда бывают большими...)

А здесь можно оставить свое мнение ↓ Подписка на комментарии
какие-то из следующих трех полей можно оставить пустыми


нет тегам!!! **эмоция**, __ирония__, >цитата, {[код]}