Filter post before *editing*

时间:2013-03-21 作者:Authman Apatira

我知道WP中有很多钩子可以在保存后将帖子写入DB之前更改帖子内容(和其他字段);但我感兴趣的是在加载帖子之前运行我的自定义过滤器,以进行编辑。因此,基本上当我的自定义帖子类型由/wp admin/post加载时。php?post=##&;操作=编辑,我想在所见即所得编辑器中显示内容之前对其运行我的过滤器。这有可能吗?

2 个回复
最合适的回答,由SO网友:Milo 整理而成

您可以使用the_editor_content 过滤器:

function wpa_editor_content( $content ) {
    global $post;
    return "this post\'s id is $post->ID " . $content;
}
add_filter( \'the_editor_content\', \'wpa_editor_content\' );

SO网友:Andrew Cafourek

这是一个很老的问题,但我在寻找自己的一些答案时遇到了它,我想我应该再添加一个答案。

WordPress有一个名为the_content() 它允许您过滤返回到几乎任何函数的内容,包括编辑器。

请在此处查看文档:https://developer.wordpress.org/reference/hooks/the_content/

文档中的代码示例,用于确定我们是否在管理员中:

add_filter( \'the_content\', \'filter_the_content_in_the_main_loop\', 1 );
 
function filter_the_content_in_the_main_loop( $content ) {
 
    // Check if we\'re in the wp-admin
    if ( is_admin ) {
        return $content . esc_html__( \'I’m filtering the content in the admin\', \'wporg\');
    }
 
    return $content;
}

结束

相关推荐

Query posts from current year

我不太明白为什么这不管用。我试图使用以下内容在首页上仅显示当年的帖子:<?php query_posts( \"&year=$current_year&order=DESC\"); ?> 但它仍然显示2012年的帖子(它们实际上不是2012年发布的,但我将发布日期设置为其中一篇帖子,显示日期为去年2月)根据文件,我应该这样做。有人能解释一下吗?谢谢