Intereting Posts
Переписывание URL-адресов с строками запросов и их сохранение Как загрузить post_meta для пользовательского типа сообщения через Ajax Как настроить пользовательскую тему для определенной страницы? comments_popup_link () – как загружать разные классы / изображения в соответствии с условиями разных комментариев? Плагин для отключения RTE на выбранной странице Попытка разделить запрос на разделы по шесть Группы возможностей: пользователи с несколькими ролями? Платное членство в Pro, отображение пользовательского ограничения Проблемы экспорта / импорта ExpressionEngine Пользовательские URL-адреса, разбивающие разбиение на страницы Обратный URL-адрес детской темы add_query_arg не работает Сломанное изображение мультисайта В мою ссылку добавлены странные символы Как получить только детские термины из пользовательской таксономии текущего типа сообщения?

Добавить фильтр в конец сообщения

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

Я добавил к нему фильтр, но потом тоже показано видео до публикации.

Вот фильтр, который я использую:

function append_the_video($content) { global $post; $content .= youtube_video(); return $content; } add_filter('the_content', 'append_the_video'); 

редактированная целая функция

 <?php function youtube_video() { ?> <div class="post"> <?php $newvar = urlencode(get_the_title()); include_once(ABSPATH . WPINC . '/rss.php'); $rss = fetch_rss('http://gdata.youtube.com/feeds/base/videos?q='.$newvar.'&client=ytapi-youtube-search&v=2'); $maxitems = get_option('novideos'); $items =is_array($rss->items) ? array_slice($rss->items, 0, $maxitems) : '' ; ?> <ul> <?php if (empty($items)) {echo "No current video uploads by ".get_the_title();} else foreach ( $items as $item ) : ?> <?php $youtubeid = strchr($item['link'],'='); $youtubeid = substr($youtubeid,1); ?> <p>Latest Videos of <b><?php the_title(); ?>:</b></p> <br> <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="320" height="265"> <param name="movie" value="http://www.youtube.com/v/<?php echo $youtubeid ?>&hl=en&fs=1" /> <!--[if !IE]>--> <object type="application/x-shockwave-flash" data="http://www.youtube.com/v/<?php echo $youtubeid ?>&hl=en&fs=1" width="320" height="265"> <!--<![endif]--> <p><a href="http://www.youtube.com/v/<?php echo $youtubeid ?>">View movie&raquo;</a></p> <!--[if !IE]>--> </object> <!--<![endif]--> </object> </li> <?php endforeach; ?> </ul> </div> <?php } function append_the_video($content) { global $post; $content .= youtube_video(); return $content; } add_filter('the_content', 'append_the_video'); ?> 

Solutions Collecting From Web of "Добавить фильтр в конец сообщения"

2 варианта:

1) Отредактируйте свою функцию youtube_video (), чтобы она возвращала строку вместо того, чтобы печатать код

2) Самый простой способ … если вы можете отредактировать свою тему, поместите вызов youtube_video () после показа вашего сообщения

Редактировать:

 <?php function youtube_video() { $ret = ""; $ret .= "<div class='post'>"; $newvar = urlencode(get_the_title()); include_once(ABSPATH . WPINC . '/rss.php'); $rss = fetch_rss('http://gdata.youtube.com/feeds/base/videos?q='.$newvar.'&client=ytapi-youtube-search&v=2'); $maxitems = get_option('novideos'); $items =is_array($rss->items) ? array_slice($rss->items, 0, $maxitems) : '' ; $ret .= "<ul>"; if (empty($items)) {$ret .= " 'No current video uploads by '.get_the_title()";} else foreach ( $items as $item ) : $youtubeid = strchr($item['link'],'='); $youtubeid = substr($youtubeid,1); $ret .= "<p>Latest Videos of <b>" . get_the_title() . ":</b></p>"; $ret .= "<br>"; $ret .= "<object classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000' width='320' height='265'>"; $ret .= "<param name='movie' value='http://www.youtube.com/v/" . $youtubeid ."&hl=en&fs=1' />"; $ret .= "<!--[if !IE]>-->"; $ret .= "<object type='application/x-shockwave-flash' data='http://www.youtube.com/v/" . $youtubeid ."&hl=en&fs=1' width='320' height='265'>"; $ret .= "<!--<![endif]-->"; $ret .= "<p><a href='http://www.youtube.com/v/" . $youtubeid ."'>View movie&raquo;</a></p>"; $ret .= "<!--[if !IE]>-->"; $ret .= "</object>"; $ret .= "<!--<![endif]-->"; $ret .= "</object>"; $ret .= "</li>"; endforeach; $ret .= "</ul>"; $ret .= "</div>"; return $ret; } ?> 

Попробуйте включить контент и видео в разные div:

 function append_the_video($content) { global $post; return '<div class="content_inner">'.$content.'</div><div class="content_video">'. youtube_video().'</div>'; } add_filter('the_content', 'append_the_video');