我正在开发一个 Wordpress 项目,在该项目中我需要动态创建一个函数(取决于页面或帖子使用哪种模板)来检索每个相关页面的评论。
因此,假设我在 Wordpress 中有 ID 为 100、110、120、130、140、150 的页面,其中 3 个页面使用名为“博客”的模板(例如:100、130 和 150)。
因此,为了使用 AJAX 从这 3 个页面中检索评论,我需要为每个页面创建一个函数:
function GetComments100() { #### }
function GetComments130() { #### }
function GetComments150() { #### }
这是我需要为每个页面单独创建的函数代码(并且位于上面的函数括号之间(而不是####):
$defaults = array( 'order' => 'DESC', 'post_id' => $functionID, 'post_type' => 'page', 'count' => false );
$comments = get_comments($defaults);
foreach($comments as $comment) :
echo "<div class='table-row' style='margin-bottom:1px'><div class='table-cell-1' style='width:110px;'>".$comment->comment_author.":</div><div class='table-cell-2'style='width:870px;'>".$comment->comment_content." <em><a>".$comment->comment_date." ... ".get_the_title($comment->comment_post_ID)." (".$comment->comment_post_ID.")</a></em></div></div>";
endforeach;
die($results);
为了获取页面,我使用了一个循环函数,它将页面 ID 作为变量提供(在我的情况下,它的 $functionID (也包含在我上面的函数数组中))。
我已经设法使用以下代码行动态创建函数(我知道“eval”不是一个好的选择,但我没有找到任何其他解决方案):
$string = 'function ' . $functionName . "() {
####
}";
eval($string);
现在我需要集成以“$defaults = array(...”开头的实际函数代码而不是####,但显然它必须完全转换为字符串——这就是我正在努力解决的问题。
任何帮助将不胜感激(同样,我知道使用“eval”并不好,但到目前为止我还没有找到任何其他解决方案)