gpt4 book ai didi

php - WordPress add_filter 函数不返回输出

转载 作者:行者123 更新时间:2023-11-29 19:28:30 24 4
gpt4 key购买 nike

我刚刚完成了 WordPress 功能的调试。调试让我疯狂地发现查询中的错误。我现在看到函数执行中没有错误,但结果没有通过返回输出。明显的答案是查询没有返回任何内容,但是尽管在修复查询语法之前存在错误,但相同的代码仍然可以完美运行。现在它没有显示任何错误,输出无法显示在页面上。其他线索是,我添加了一个回显,并且回显出现在各个页面上,尽管代码应该只在“个人资料”页面上运行。我是 php 新手,所以我不明白代码如何在没有捕获错误的情况下运行,但似乎无法运行。特别是考虑到虽然错误日志确实显示了错误,但它实际上按预期工作。这是一个简单的查询,通过首先查找成员(member)级别(第一个查询)然后查找成员(member)的实际名称(基于第一个查询的第二个查询)来查找成员(member)的成员(member)名称。 “返回$text.$content;”线路似乎没有启动。代码如下:

function Welcome($content) {
$welcome = '';
if ( is_page('Profile'))

$url = $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
$numb = str_replace('mysite.org/profile/?user_id=', '', $url);

global $wpdb;
$query = $wpdb->prepare ('SELECT `membership_level_id` FROM `mm_user_data` WHERE `wp_user_id` = %d', '$numb');
$idnum= $wpdb->get_var($query);

$query = $wpdb->prepare ('SELECT `name` FROM `mm_membership_levels` WHERE `id` = %d', '$idnum');
$text= $wpdb->get_var($query);
$text="<h3>$text</h3>";

return $text.$content;
}

add_filter('the_content', 'Welcome');

最佳答案

1) 你错过了 if 的大括号。所以这个条件 if ( is_page('Profile')) 仅适用于其后的第一行;

2) 回调过滤函数在任何情况下都必须有返回值。所以你必须写这样的东西:

function Welcome($content) {
if ( is_page('Profile')) {

// your changes for content

return $content;
}
return $content;
}

3) 为什么查询参数使用单引号?如果您需要将 %d 替换为变量,则必须编写不带引号(或双引号)的 $numb 。了解更多 here .

关于php - WordPress add_filter 函数不返回输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41973551/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com