通过return调用函数内的PHP脚本

时间:2012-02-08 21:15:56

标签: php

我正在整合两个wordpress插件。我想要做的是将此代码<?php DisplayStars(get_the_ID()); ?>添加到另一个插件的函数中。我试过$html = '<?php DisplayStars(get_the_ID()); ?>';,但php显示错误。谢谢你的帮助。

function wpbusdirman_post_excerpt($count)
{   
    $wpbusdirman_gpid=wpbusdirman_gpid();
    $wpbusdirman_permalink=get_permalink($wpbusdirman_gpid);
    $html = '';
    $html .= '<div id="wpbdmlistings"';
    $isasticky = get_post_meta(get_the_ID(),'sticky');
    if(isset($isasticky) && !empty($isasticky))
    {
        $isasticky=$isasticky[0];
    }
    if(isset($isasticky) && ($isasticky == 'approved'))
    {
        if($count&1)
        {
            $html .= ' class="wpbdmoddsticky"';
        }
        else 
        {
            $html .= ' class="wpbdmevensticky"';
        }
    }
    else 
    {
        if($count&1)
        {
            $html .= ' class="wpbdmodd"';
        }
        else 
        {
            $html .= ' class="wpbdmeven"';
        }
    }
    $html .='><div class="listingthumbnail">' . wpbusdirman_display_the_thumbnail() . '</div><div class="listingdetails">';
    $html .= wpbusdirman_display_the_listing_fields();
    $html .= wpbusdirman_view_edit_delete_listing_button();
    $html .= '</div><div style="clear:both;"></div></div>';
    return $html;
} 

2 个答案:

答案 0 :(得分:0)

您正在使用的代码库是php。你要添加的代码是php。这意味着,您不需要在html中添加它,只需调用该函数即可。 (如果文件不在此文件中,您可能需要在文件顶部有一个include

$html .= DisplayStars(get_the_ID());

应该是您在调用中将所有文本添加到html中所需的全部内容。

答案 1 :(得分:0)

当你做这样的事情时:

<?php return "<?php echo('foo'); ?>"; ?>

然后PHP不知道(或关心)引号之间的内容 - 它只是文本,据它所知。但是,您可以使用eval来获取PHP来解释字符串:

<?php
    $command = "echo('foo');";
    eval($command);
?>

这将导致PHP打印出“foo”。但请注意,eval很危险 - 请参阅note in the PHP manual