将滤镜添加到帖子末尾

时间:2011-05-26 作者:Niraj Chauhan

我有一个功能,这是用来显示视频,我想这个视频后显示后,它应该显示视频后结束。

我已经添加了过滤器,但视频也会在帖子之前显示。

下面是我正在使用的过滤器:

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\');

?>

2 个回复
最合适的回答,由SO网友:MZAweb 整理而成

2个选项:

1) 编辑youtube\\u video()函数,使其返回字符串,而不是打印代码

2) 最简单的方法。。。如果可以编辑主题,请在显示帖子内容后调用youtube\\u 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;
}

?>

SO网友:Bainternet

尝试将内容和视频包含在不同的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\');

结束

相关推荐

自定义分类不适用于新WP_QUERY中的POSTS_PER_PAGE(分页问题)

好的,我第二次搞乱了自定义分类法,在这两种情况下,我都遇到了这个问题,在query\\u posts或WP\\u查询场景中使用posts\\u per\\u page参数。。基本上,如果我对每页的帖子设置了自定义限制,单击“下一步”或“上一步”按钮会显示404个错误。。无论我使用的是自定义permalink结构还是任何默认值,结果都是一样的。我成功控制页面帖子数量的唯一方法是通过仪表板中的阅读设置。我发现有很多人提到过这个问题,但除了上面提到的仪表板设置之外,还没有找到有效的解决方案:wordpress.