Add_action(‘the_content’,‘my_plugin_content’)为空

时间:2020-04-01 作者:Luca

我在个人插件中创建,从个人表中恢复数据。Con add\\u action(“the\\u content”,“my\\u plugin\\u content”);乌纳帕吉纳的《远观世界》(posso far vedere il contenuto)。我想用add\\u filter(\'save\\u post\',\'my\\u plugin\\u content\')保存wp\\u posts中的内容,但内容为空。

function my_plugin_content($content){
     $current_page = $wp->request;
     include_once(plugin_dir_path( __FILE__ ).\'views/view.php\');
     $obj = new Loader;
     $content.=$obj->controller($current_page);
     $my_post = array(); 
     $my_post[\'ID\'] = $post->ID;
     $my_post[\'post_content\']=$cont;
}
在另一个文件中,我运行了数据恢复查询,我引用了加载视图的文件加载器

文件加载器

public function view($view, array $dati){
      require(DIR_PLUGIN.\'views/\'.$view.\'_v.php\');
}
文件视图

    <?php foreach($dati as $p){  echo \'<p><strong>\'.$p->NAME.\'</strong></p>; }?>

2 个回复
SO网友:Tom J Nowell

过滤器always 返回一些东西,它们不是操作,它们接受一些东西,修改它,然后返回它,但你的过滤器两者都不做。

因此,PHP声明它返回null, 下一个过滤器接收null 作为帖子内容。

例如,此筛选器附加单词“Hey!”至内容末尾:

add_filter( \'the_content\', function ( $content ) {
    return $content . \'Hey!\';
} );
因此,您需要记住以下几点:

过滤器经常被调用,不要在过滤器中做繁重的工作过滤器是用来过滤的,你需要先处理第一个参数,然后返回它always 退回一些东西不要echo 把东西放在过滤器上return 应用修改后的完整值

SO网友:Luca

内容为null,因为某些文件中缺少return语句。我使用输出缓冲区来检索完整的contentuno。。我决定将内容保存在主wordpress表中。

function my_plugin_content($content){
     $current_page = $wp->request;
     include_once(plugin_dir_path( __FILE__ ).\'views/view.php\');
     $obj = new Loader;
     $content.=$obj->controller($current_page);
     $my_post = array(); 
     $my_post[\'ID\'] = $post->ID;
     $my_post[\'post_content\']=$content;
     wp_update_post($my_post);
}
问题是内容被添加到了现有帖子的内容中。我希望内容被替换。最佳做法是什么?

相关推荐

Wordpress Database Cleanup

重建WordPress数据库和更改网站的目录结构有多困难?我继承了两个网站的维护工作,我很确定目录结构设置不正确,数据库一团糟(两个网站有6个数据库?)。我是WordPress的新手,我怀疑现在使用现有网站重建网站会更容易。丢失数据没什么大不了的,网站也没什么特别的。该网站运行正常,但维护起来越来越困难。这是一个合理的计划吗?