循环和管理标头中的问题

时间:2013-01-15 作者:Roman Epicnerd Sharf

我在附加到“admin\\u enqueue\\u scripts”挂钩的函数中运行了一个WP\\u查询循环

add_action( \'admin_enqueue_scripts\', \'rs_get_scripts\'); 
function rs_get_scripts() {
    //enqueue js file
    ...

    $args = array( \'post_type\' => \'events\', \'posts_per_page\' => -1);
    $query = new WP_Query($args);                      
    if ( $query->have_posts() ) : while ( $query->have_posts() ) : $query->the_post();

        /* bug occurs no matter what code is in here */
        //get data about each post
        ...

    endwhile;endif;wp_reset_query();

    //localize the data I got from each events post type into js file
     ...

}
发生的情况是,在“admin\\u enqueue\\u scripts”挂钩时运行此循环似乎会搞糟管理员。问题是,当我尝试创建新的帖子、页面或任何其他自定义帖子类型时,Wordpress总是会重新更正我,以创建我在上面的循环中查询的帖子类型。在这种情况下,它是“事件”。我尝试更改循环以查询\\u帖子和获取\\u帖子,但没有成功。有什么想法吗?

1 个回复
SO网友:diggy

将查询部分移动到一个单独的函数,该函数将返回所需的数据:

function rs_get_scripts_data(){
    $array = array();
    // query + add stuff to array
    return $array;
}
并将其与wp\\u localize\\u脚本一起使用,如:

$array = rs_get_scripts_data();
$myscript_vars = array(
    \'array\'  => $array
);
wp_localize_script( \'myscript\', \'myscript\', $myscript_vars );

结束

相关推荐

How does admin-ajax.php work?

我们与外部开发人员有一些问题。我们想限制访问wp-admin 仅限现场内部访问(通过VPN). 这样就不会受到外部用户的攻击。我们可以从站点中枚举管理员,不希望他们被钓鱼。我们的开发人员说我们不能这样做,因为网站需要有外部访问的管理页面,这样页面才能正常工作。特别是admin-ajax 页什么是admin-ajax.php 页码do?它位于WordPress的管理部分。最终用户是否未经身份验证就访问?让外部用户使用此功能是否不安全?