Php Wordpress函数在插件中返回白色屏幕

Php Wordpress函数在插件中返回白色屏幕,php,function,wordpress,Php,Function,Wordpress,我在编写Wordpress插件方面是个新手,所以首先我尝试创建一个只修改字符串的简单插件。我不久前写的脚本,知道它的功能。但是为了在Wordpress上使用它,我想把它应用到文章标题上。当我用函数get_the_title替换字符串时,它返回一个白色屏幕。我把它简化为: function display_title() { echo get_the_title(); } add_action('the_title', 'display_title'); 这仍然返回一个白色屏幕。所以我想它一定

我在编写Wordpress插件方面是个新手,所以首先我尝试创建一个只修改字符串的简单插件。我不久前写的脚本,知道它的功能。但是为了在Wordpress上使用它,我想把它应用到文章标题上。当我用函数get_the_title替换字符串时,它返回一个白色屏幕。我把它简化为:

function display_title() {
echo get_the_title();
}

add_action('the_title', 'display_title');

这仍然返回一个白色屏幕。所以我想它一定是get_the_title函数。有人能解释一下为什么这不起作用,或者用另一种方式检索标题字符串吗?

首先,“标题”不是一个动作,而是一个过滤器。所以这个功能永远不会启动。所以这不是这个函数的错,可能是别的原因。我建议阅读插件api,了解操作和过滤器之间的区别。过滤器专门设计用于以简单的方式实现您想要的功能:


首先,“标题”不是一个动作,而是一个过滤器。所以这个功能永远不会启动。所以这不是这个函数的错,可能是别的原因。我建议阅读插件api,了解操作和过滤器之间的区别。过滤器专门设计用于以简单的方式实现您想要的功能:

正如John所说,尽管函数将被调用,不管您是使用add\u filter还是add\u action注册它,但它的标题是一个过滤器而不是一个动作挂钩

您的问题是,对于过滤器,您的函数需要返回一个值,通常是传递的参数的修改版本。因此,要使用此过滤器修改标题,应执行以下操作:

function display_title($title) {
    $title .= '!'; // Do something with the title string here
    return $title;
}

add_filter('the_title', 'display_title');
正如John所说,尽管函数将被调用,不管您是使用add\u filter还是add\u action注册它,但它的标题是一个过滤器而不是一个动作挂钩

您的问题是,对于过滤器,您的函数需要返回一个值,通常是传递的参数的修改版本。因此,要使用此过滤器修改标题,应执行以下操作:

function display_title($title) {
    $title .= '!'; // Do something with the title string here
    return $title;
}

add_filter('the_title', 'display_title');

是否打开了错误报告?您应该会从PHP收到一条有意义的错误消息。您的错误报告是否已打开?您应该会从PHP收到一条有意义的错误消息。谢谢,我现在看到了区别。但是,如果我只输入一个字符串而不是get_the_title函数,那么它似乎可以正常工作。它加载页面并用该字符串替换标题。谢谢,我现在看到了区别。但是,如果我只输入一个字符串而不是get_the_title函数,那么它似乎可以正常工作。它加载页面并用该字符串替换标题。谢谢,这非常有效。我不知道我可以使用一个名为$title的变量,它会检索每个字符串。codex中的某个地方是否有这些内容的列表?函数不检索标题字符串,而是将其作为参数传递。基本上,当您在Wordpress循环中调用_title时,将从数据库中检索该标题,并将其传递到连接到_title过滤器的所有函数中,然后打印出来。不幸的是,大多数过滤器都没有记录在codex中,因此找出函数将要传递的参数的最好方法是在Wordpress源代码中搜索apply_filters'filter_name',随后的参数将传递给函数。如果查看wp includes/default-filters.php,_标题的大多数过滤器都应该在那里。谢谢你,这非常有效。我不知道我可以使用一个名为$title的变量,它会检索每个字符串。codex中的某个地方是否有这些内容的列表?函数不检索标题字符串,而是将其作为参数传递。基本上,当您在Wordpress循环中调用_title时,将从数据库中检索该标题,并将其传递到连接到_title过滤器的所有函数中,然后打印出来。不幸的是,大多数过滤器都没有记录在codex中,因此找出函数将要传递的参数的最好方法是在Wordpress源代码中搜索apply_filters'filter_name',随后的参数将传递给函数。如果查看wp includes/default-filters.php,_标题的大多数过滤器都应该在那里。