Php Wordpress在帖子中预填充内容

Php Wordpress在帖子中预填充内容,php,wordpress,Php,Wordpress,我有一个管理插件,里面有一个文章列表,旁边有一个按钮“添加到帖子”。单击该按钮,我想重定向到“/wp admin/post new.php”,并预先填写表单 我可以在url中设置标题,如wp admin/post new.php?post_type=post&post_title=My title。但是,如何预填充内容 我读了一些类似的文章,但这不是我想要的 而且,每次的内容都会不同,所以我不想将其设置为默认值 我现在正在做的是: 单击按钮上的My jQuery: function add_to

我有一个管理插件,里面有一个文章列表,旁边有一个按钮“添加到帖子”。单击该按钮,我想重定向到“/wp admin/post new.php”,并预先填写表单

我可以在url中设置标题,如
wp admin/post new.php?post_type=post&post_title=My title
。但是,如何预填充内容

我读了一些类似的文章,但这不是我想要的

而且,每次的内容都会不同,所以我不想将其设置为默认值

我现在正在做的是:

单击按钮上的My jQuery:

function add_to_post(id) {

    var data = {
        'action'    : 'add_to_post',
        'id'    : id
    };

    $.ajax({
        type    : 'POST',
        url     : ajaxurl,
        data    : data
    })
    .done(function(){

        var title   = $(document.getElementById('title_'+id)).text(); 
        var link    = host+"/wp-admin/post-new.php?post_type=post&post_title="+title;
        window.open(link,"_blank");
    })
    ;
}
我的动作插件代码

add_action('wp_ajax_add_to_post','add_to_post_callback');

function add_to_post_callback() {

    add_filter( 'default_content', 'my_editor_content', 10 , 2 );

    wp_die();
}

function my_editor_content( $content ) {

    $content = "This is some custom content I'm adding to the post editor because I hate re-typing it.";

    return $content;
}
但当我点击“添加到帖子”按钮时,内容仍然是空的 我将感谢任何帮助


Aman.

WordPress有一个默认内容的过滤器:

add_filter( 'default_content', 'set_default_content', 10, 2 );
function set_default_content( $content, $post ) {
    $content = ...your content...;
    return $content;
}

您可以对内容使用一个变量,并随时更改它。

这就是我最后要做的:

在jQuery中:

function add_to_post(feed_id) {

    var title   = $(document.getElementById('title_'+feed_id)).text(); 
    var content = $(document.getElementById('summary_'+feed_id)).text(); 
    var link    = host+"/wp-admin/post-new.php";

    var data = {
        'post_title'    : title,
        'pre_content'   : content,
        'post_type'     : 'post'
    };

    $.extend({
        redirectPost: function(location, args) {
            var form = '';
            $.each( args, function( key, value ) {
                form += '<input type="hidden" name="'+key+'" value="'+value+'">';
            });
            $('<form target = "_blank" action="'+location+'" method="POST">'+form+'</form>').appendTo('body').submit();
        }
    });
    // sending content as post because Get request has character limit of 2048. Just taking no chances.
    $.redirectPost(link,data);
}

嘿,波比,我试着照你说的做了,但是内容还是空的。我对我的问题进行了编辑,以添加我所做的。如果你能给我指出这个问题:)。。谢谢,我不知道是否可以在Ajax处理程序中添加过滤器。通常插件中的过滤器添加到主插件文件或“init”操作处理程序中。既然您从未对返回的
数据做过任何事情,那么您到底想用Ajax调用做什么?
//To add content to your post.
add_filter( 'default_content', 'my_editor_content', 10 , 2 );

function my_editor_content( $content , $post ) {

    if(isset($_POST['pre_content'])) {
        $content = $_POST['pre_content'];
    }

    return $content;
}