我需要更改页面内容源,而不是从数据库获取,而是从外部文件获取。 我决定在页面中添加一个自定义字段'staticfile',我想要更改源代码。然后我写了迷你插件并添加了过滤器“the_content”:
add_filter('the_content', 'static_content');
function static_content($content) {
$custom_fields = get_post_custom();
$my_custom_field = $custom_fields['staticfile'];
$upload_dir = wp_upload_dir();
foreach ($my_custom_field as $value) {
if ($value) {
$file = file_get_contents($upload_dir['basedir'] . '/staticpages/' . $value);
return $file;
}
}
return $content;
}
除了一件事之外它工作得很好。我在输出上获得的html代码未被过滤。例如,添加了其他插件的短代码不起作用。我试着写:
return apply_filters('the_content', $file);
但它打破了所有输出(可能它会循环代码)。 有没有办法通过应用过滤器来更改页面源?
答案 0 :(得分:0)
我认为您想要应用优先级参数... add_filter(' the_content',' static_content',20); 插件的默认值为10,因此20表示它运行的优先级较低。尝试查看要设置的内容,因为它设置得越高,然后所有插件都可以在使用过滤器处理之前对其进行修改。 认为这就是你想要的。