如何修改wp_ajax函数?

时间:2012-06-21 作者:Jenny

我想修改wp\\u ajax\\u find\\u posts函数。它从find posts表单接收搜索字符串,并通过ajax提供搜索结果。部分函数如下所示:

function wp_ajax_find_posts() {
    global $wpdb;
    check_ajax_referer( \'find-posts\' );

    // ........
    $search .= " OR ($wpdb->posts.post_title LIKE \'%{$term}%\') OR ($wpdb->posts.post_content LIKE \'%{$term}%\')";
    $posts = $wpdb->get_results( "SELECT ID, post_title, post_status, post_date FROM $wpdb->posts WHERE post_type = \'$what\' AND post_status IN (\'draft\', \'publish\') AND ($search) ORDER BY post_date_gmt DESC LIMIT 50" );

    $html = //......

    $x = new WP_Ajax_Response();
    $x->add( array(
        \'what\' => $what,
        \'data\' => $html
    ));
    $x->send();
}
add_action( \'wp_ajax_find_posts\', \'wp_ajax_find_posts,1)
我想修改$post行,将post\\u author添加到查询中,以便将结果限制在当前loggin用户范围内。我想学习如何连接这个wp\\u ajax\\u find\\u post函数,让它接受我修改过的$post。我是否必须执行remove\\u action和add\\u action才能完全重写上述功能?

2 个回复
SO网友:webaware

通过指定更高的优先级(即更低的数字),可以跳转到AJAX挂钩之前,如下所示:

add_action( \'wp_ajax_find_posts\', \'wp_ajax_find_posts\', 0 );
注意:有效,因为0<;1.

SO网友:Rutwick Gangurde

我已在此处发布了按字母顺序排列的标题/内容搜索代码:SQL query not working in alphabetical post title/content search

现在,您需要作者作为当前登录的用户。因此,修改函数以包括以下内容:

//This goes at the top in the function
global $current_user;
get_currentuserinfo();

//Change the get_posts in the original code with this
$posts = get_posts(array(\'s\' => $q, \'author\' => $current_user->ID, \'posts_per_page\' => 2));
让我知道它是否有效!

结束

相关推荐

making sense of admin-ajax

因此,我正在使用ThemeTrust的“显示”主题,我真的想改变一大块内容(抓取自定义元字段(图像)+插入幻灯片)。据我所知,下面的代码从普通的tinymce框中获取内容,并将其放入#projectHolder div-但我不知道如何在这个请求上使用php代码。function loadProject(projectSlug) { // Scroll to the top of the projects jQuery(\"#projectHolder\").load(