the_content вывод информации
-
Всем привет, есть у меня такая классная вещь с использованием -default_content, которая позволяет мне отформатировать wordpress editor. Но есть задача, в кусочке кода между выводимыми блоками в бекенде, так же выводить специфичные ссылки во фронт-энде, которые одинаковы для всех постов данного типа. Но не могу ни как разобраться. Если я втыкаю их в кусочек кода с default_content, который форматирует editor, то у меня вылетает белый экран смерти и все! Прошу помощи!
-
Привет.
Не очень понял что именно Вы делаете и что есть «классная вещь с использованием -default_content», но если белый экран, то скорее всего причину можно найти в логе ошибок сервера (error_log).
В общем я делаю редактор, как вот в этом гайде -http://habrahabr.ru/post/131001/. Но помимо функционала который представлен там, т.е. создания блоков div. Я хочу вывести между блоками ссылки, которые завернуты в img. Затем сайт успешно выдает белый экран.
Привет, столкнулся с проблемой, вот с этим хуком. Вот как он выглядит изначально.
add_filter( 'default_content', 'custom_editor_content' ); function custom_editor_content( $content ) { $content = 'Выведи счастье по умолчанию'; return $content; } add_editor_style( 'editor-style.css' );
Вот что я пытаюсь сделать
add_filter( 'default_content', 'custom_editor_content' ); function custom_editor_content( $content ) { $content = ' <div class="schactie">Выведи счастье по умолчанию</div> <div id="contact_form_pop"><?php echo do_shortcode('[contact-form-7 id="65"]'); ?></div> '; return $content; }
Как понимаете всё условно. Но что нужно — Выводить в рамках предопределенного стиля редактора — ещё и элементы с использованием вставок — функций или кусочков кода php. Как только я добавляю второй вариант, сайт ложиться белым экраном смерти. Прошу прощения за кривые объяснения или незнание основных. Подскажите, как можно реализовать такой функционал?
А так?
function custom_editor_content( $content ) { $content = ' <div class="schactie">Выведи счастье по умолчанию</div> <div id="contact_form_pop">' . do_shortcode('[contact-form-7 id="65"]') . '</div> '; return $content; }
Понял
Не помогло
Тогда смотрите лог ошибок сервера. Но я думаю проблема в том, что Вы пытаетесь в текстовое поле вставить форму. Кстати, зачем? Если хотите, чтобы на странице была форма сделайте отдельный template и выводите её отдельно от контента.
В целом всё выглядит вот так изначально, форма сделана через fancy box
И получается что ничего не получается:)add_filter( 'default_content', 'custom_editor_content' ); function custom_editor_content( $content ) { $content = ' <div class="under-conference"> <div class="registration"><a href="#contact_form_pop" class="fancybox"><img src="<?php bloginfo('template_url'); ?>/images/registration.png"></a> <div style="display:none" class="fancybox-hidden"> <div id="contact_form_pop"><?php echo do_shortcode('[contact-form-7 id="65"]'); ?></div> </div><!--<img src="<?php bloginfo('template_url'); ?>/images/registration.png">--><div class="regtext">Регистрация</div></div> <div class="date-of-conference"><?php the_field('date_of_conference'); ?><br/><?php the_field('place_of_conference'); ?></div> <div class="request"><a href="#contact_form_pop1" class="fancybox"><img src="<?php bloginfo('template_url'); ?>/images/request.png"></a> <div style="display:none" class="fancybox-hidden"> <div id="contact_form_pop1"><?php echo do_shortcode('[contact-form-7 id="66"]'); ?></div></div> <div class="reqtext">Программа</div></div> </div> <div class="content-col-all"> <div class="content-col-main">Main text </div> <div class="content-col-1">This event will allow to </div> <div class="content-col-2">Conference audience </div> <div class="content-col-partners"><div class="partners1">Partner1 </div><div class="partners2">Partner2 </div><div class="partners3">Partner3 </div></div> <div class="content-col-mpartners"><div class="mpartners1">mPartner1 </div><div class="mpartners2">mPartner2 </div><div class="mpartners3">mPartner3 </div> <div class="mpartners4">mPartner4 </div><div class="mpartners5">mPartner5 </div></div> <div class="content-col-contacts">Contacts </div> </div> '; return $content; } add_editor_style( 'editor-style.css' );
И получается что ничего не получается:)
Так Вы этим чего хотите добиться? Зачем вставлять контактную форму в редактор? и значения полей ACF?
Ну и <?php echo и the_field выводит всё сразу на экран. Если хотите в переменную надо использовать конкатенацию и get_field. bloginfo тоже выводит сразу на экран, можно заменить на get_template_directory_uri;
А get_field можно тут же выводить или надо через переменную.
get_field просто получает значение поля, а the_field получает и сразу выводит, т.е. если нужно, чтобы значение попало в переменную $content — нужно использовать get_field.
@denisco, можешь в данном кейсе на примере показать?
Если про свой шаблон страницы, у WordPress есть механизм, который позволяет по разному выводить разные страницы. Можно, например, переопределить вывод для какой-то конкретной страницы, а можно создать шаблон, который будет выбираться при редактировании записи. Ну и, соответственно, всё что пользователь не должен редактировать сгрузить туда, а остальное выводить как обычно через the_content. Как-то более подробно вряд ли получится объяснить. Почитайте документацию, посмотрите как устроены другие темы, со временем всё должно встать на свои места :).
HTML-код я так никогда в редактор не вставлял, поэтому примеров особо нет. Эта структура достаточно шаткая, в любой момент пользователь может удалить какой-то кусок разметки и вся страница развалится. Если хочется как-то структурировать вводимую информацию, то по мне лучше использовать шорткоды, выносить эту информацию в дополнительные поля и выводить в нужных местах шаблона. Также существуют всяческие визуальные редакторы для WordPress, например, Visual Composer и ещё куча платных и бесплатных аналогов.
@denisco
Круто, я почти всё сделал, но не могу разобраться с get_template_directory_uri
Я делаю так
<img src="get_template_directory_uri();/images/request.png">
Но не выводит картинку, просто «битый» значок.надо сделать так?
// Enable the use of shortcodes within widgets. add_filter( 'widget_text', 'do_shortcode' ); // Assign the tag for our shortcode and identify the function that will run. add_shortcode( 'template_directory_uri', 'wpse61170_template_directory_uri' ); // Define function function wpse61170_template_directory_uri() { return get_template_directory_uri(); }
А потом через shortcode?
вот так
<img src="'. do_shortcode('[template_directory_uri]') .';/images/request.png">
Но так не помогает:(
Круто, я почти всё сделал, но не могу разобраться с get_template_directory_uri
Я делаю так
<img src=»get_template_directory_uri();/images/request.png»>Должно получиться примерно так:
$content = 'контент контент контент <img src="' . get_template_directory_uri() . '/images/request.png"> контент контент контент';
@denisco Спасибо огромное!!!
Всё заработало, как следует!:)
- Тема «the_content вывод информации» закрыта для новых ответов.