/** * Set up virtual pages for use with Social Paper. * * Some of our pages do not exist in WordPress. In order to render content, * we have to do some tomfoolery to get WP to see our page as a "real" page. * * Currently supports the 'new' page slug. * * @see _cacsp_set_markers() * * @param array $p Current queried posts. * @return array */ function _cacsp_set_virtual_page($p) { // 'new' page slug if (true === Social_Paper::$is_new) { // redirect non-authenticated users back to paper directory if (false === is_user_logged_in()) { wp_redirect(home_url('/papers/')); die; } // dummy time! $p = array(); $p[] = new WP_Post((object) array('ID' => 0, 'post_content' => __('Loading new paper. Please wait...', 'social-paper'), 'post_title' => '', 'post_name' => 'new', 'filter' => 'raw', 'post_type' => 'cacsp_paper')); } // empty directory // we need to pass the have_posts() check so we can override the content if (cacsp_is_archive() && empty($p)) { Social_Paper::$is_empty_archive = true; // dummy time! $p = array(); $p[] = new WP_Post((object) array('ID' => 0, 'post_content' => '', 'post_title' => '', 'post_name' => '', 'filter' => 'raw', 'post_type' => 'cacsp_paper')); } return $p; }