代码之家  ›  专栏  ›  技术社区  ›  luckykind

应用过滤器并给内容添加操作?

  •  3
  • luckykind  · 技术社区  · 14 年前

    我在实际的教程中问过这个问题,但不确定我会不会在快2个月大的时候得到答案。。。所以我要在这里吃一个甘德。。。

    Build a WordPress Plugin to Add Author Biographies to your Posts

    总结一下教程和什么 问题 是的,本教程在内容末尾添加了作者简介,如下所示(简短版本):

    function x($content) {
         return $content . "Author Bio";
    }
    
    add_action('the_content','x');
    

    问题是:

    当某人使用:

    $z = apply_filters('the_content', 'some content here');
    echo $z;
    

    有没有更好的方法把东西应用到内容钩子的末尾/下面/下面?除 add_action(‘the_content’, ‘some_function’) 因为这在我看来是邪恶的。。。

    或者是 apply_filters(‘the_content’, ‘some content here’) 不是规范或者开发者不应该在他们的WordPress模板中使用的东西(这似乎很正常,至少在谷歌格式化“内容”外的循环)。。。

    2 回复  |  直到 14 年前
        1
  •  3
  •   John P Bloch    14 年前

    使用 apply_filters('the_content','some content here') ,虽然这可能不是“常态”(我不知道)。我以前没见过,但如果我需要格式化文本,我会这么做),这是一个非常有效的过滤器使用,以获得一些文本格式化的内容。不幸的是,没有更好的方法从插件中向内容添加内容。这就是这些事情的运作方式。

    然而,有一种(不太理想的)方法可以避免这种情况。作为插件安装过程的一部分,让用户在主题中插入自定义函数调用、操作或过滤器。我知道有几个插件可以做到这一点,所以这并不少见。像这样:

    do_action('my_super_awesome_bio_hook');

    echo apply_filters('my_super_awesome_bio_filter_hook','');

    这将允许你的插件修改bio,但也允许使用插件的人在必要时覆盖它(比如在他们只使用摘录的页面上,比如搜索结果等)。

    希望这有帮助。

    还有一个小附录:您应该使用 add_filter ,不是 add_action 附加作者简历。 仍然有效,但这是你想要使用的过滤器。

        2
  •  0
  •   Chief Alchemist    12 年前

    我在开发一个小部件时遇到了类似的问题。我刚发现这个:

    http://codex.wordpress.org/Function_Reference/wpautop

    推荐文章