WP PHP循环不会在结尾显示信息

时间:2013-10-17 22:53:15

标签: php wordpress function if-statement

我有一个非常简单的php循环(见下文),并希望在img类“yearofstudy”之后出现两个喜欢和不喜欢的计数器。但是图像后面没有显示文字。即使它放在实际的HTML之后。

注释中的喜欢和不喜欢必须是内部函数才能使它工作,因为它创建了一个显示它的WP循环。基本上,我需要帮助重新安排这个,所以喜欢和不喜欢出现在循环中但在图像之后。

非常感谢任何帮助,我一直盯着这几个小时,看过每一个在线但还没有找到任何东西。

// Add the comment meta (saved earlier) to the comment text 
// You can also output the comment meta values directly in comments template  

add_filter( 'comment_text', 'modify_comment');
function modify_comment( $text ){

    $plugin_url_path = WP_PLUGIN_URL;

    if( $commenttitle = get_comment_meta( get_comment_ID(), 'title', true ) ) {
        $commenttitle = '<strong>' . esc_attr( $commenttitle ) . '</strong><br/>';
        $text = $commenttitle . $text;
    } 

    if( $commentrating = get_comment_meta( get_comment_ID(), 'rating', true ) ) {
        $commentrating = '<p class="comment-rating">    <img src="'. $plugin_url_path .
        '/ExtendComment/images/'. $commentrating . 'star.gif" class="yearofstudy" /></p><br />';


        $text = $text . $commentrating;
        return $text;   

    // LIKE AND DISLIKE ON COMMENTS     
    if(function_exists('like_counter_c')) { like_counter_c('text for like'); }

    if(function_exists('dislike_counter_c')) { dislike_counter_c('text for dislike'); }     
    }

}

编辑:

虽然RecoveringSince2003提供的答案确实有效并且显示出喜欢和不喜欢的效果,但它不允许在html图像年度学习之后出现这些功能。它出现在之前,这不是我所追求的。

有关示例,请参阅此处,请务必向下滚动以查看评论/评论:http://universitycompare.com/universities/anglia-ruskin-university

1 个答案:

答案 0 :(得分:0)

乍一看,你有

if( $commentrating = get_comment_meta( get_comment_ID(), 'rating', true ) ) {
    $commentrating = '<p class="comment-rating">    <img src="'. $plugin_url_path .
    '/ExtendComment/images/'. $commentrating . 'star.gif" class="yearofstudy" /></p><br />';

    $text = $text . $commentrating;
    return $text;   // <-- terminating the execution

    // following code is never being executed
    // LIKE AND DISLIKE ON COMMENTS     
    if(function_exists('like_counter_c')) { like_counter_c('text for like'); }
    if(function_exists('dislike_counter_c')) { dislike_counter_c('text for dislike'); }     
}

因此。 return语句在永远不会到达return之后终止函数的执行和代码的其余部分。我不知道这些函数调用是什么/如何工作但是如果你想执行这些if(function_exists('like_counter_c'))行,那么在这些行之后移动你的return语句,比如

$text = $text . $commentrating;
if(function_exists('like_counter_c')) { like_counter_c('text for like'); }
if(function_exists('dislike_counter_c')) { dislike_counter_c('text for dislike'); }
return $text;

更新:

在图片标记中添加一些样式,(通过修改**yearofstudy**类还有其他方法)

<img src="'. $plugin_url_path .
    '/ExtendComment/images/'. $commentrating . 'star.gif" class="yearofstudy" style="float:right" />