Can Wordpress posts be rendered dynamically?

时光毁灭记忆、已成空白 提交于 2019-12-04 07:07:11

As a solution you could use the 404 page to generate this dynamic post.

There's a blog post here that gives a similar solution: http://www.blogseye.com/creating-fake-wordpress-posts-on-the-fly/

The code used to generate the fake posts:

function kpg_f_content() {
    global $wp_query;
    if($wp_query->is_404 ) {
        $id=-42; // need an id
        $post = new stdClass();
            $post->ID= $id;
            $post->post_category= array('uncategorized'); //Add some categories. an array()???
            $post->post_content='hey here we are a real post'; //The full text of the post.
            $post->post_excerpt= 'hey here we are a real post'; //For all your post excerpt needs.
            $post->post_status='publish'; //Set the status of the new post.
            $post->post_title= 'Fake Title'; //The title of your post.
            $post->post_type='post'; //Sometimes you might want to post a page.
        $wp_query->queried_object=$post;
        $wp_query->post=$post;
        $wp_query->found_posts = 1;
        $wp_query->post_count = 1;
        $wp_query->max_num_pages = 1;
        $wp_query->is_single = 1;
        $wp_query->is_404 = false;
        $wp_query->is_posts_page = 1;
        $wp_query->posts = array($post);
        $wp_query->page=false;
        $wp_query->is_post=true;
        $wp_query->page=false;
    }
}

add_action('wp', 'kpg_f_content');

Make this into a plugin or add it to the functions.php file.

Alternative solution:

add_filter('init', 'custom_function');
function custom_function(){
    if(is_admin()==true) return false;

    //check URL
    if($_SERVER['REQUEST_URI'] != '/hello/') return false;

    echo 'Hello.';
    exit();
    }

This is an another way to create posts dynamically

    $post = array(
  'ID'             => [ <post id> ] // Are you updating an existing post?
  'post_content'   => [ <string> ] // The full text of the post.
  'post_name'      => [ <string> ] // The name (slug) for your post
  'post_title'     => [ <string> ] // The title of your post.
  'post_status'    => [ 'draft' | 'publish' | 'pending'| 'future' | 'private' | custom registered status ] // Default 'draft'.
  'post_type'      => [ 'post' | 'page' | 'link' | 'nav_menu_item' | custom post type ] // Default 'post'.
  'post_author'    => [ <user ID> ] // The user ID number of the author. Default is the current user ID.
  'ping_status'    => [ 'closed' | 'open' ] // Pingbacks or trackbacks allowed. Default is the option 'default_ping_status'.
  'post_parent'    => [ <post ID> ] // Sets the parent of the new post, if any. Default 0.
  'menu_order'     => [ <order> ] // If new post is a page, sets the order in which it should appear in supported menus. Default 0.
  'to_ping'        => // Space or carriage return-separated list of URLs to ping. Default empty string.
  'pinged'         => // Space or carriage return-separated list of URLs that have been pinged. Default empty string.
  'post_password'  => [ <string> ] // Password for post, if any. Default empty string.
  'guid'           => // Skip this and let Wordpress handle it, usually.
  'post_content_filtered' => // Skip this and let Wordpress handle it, usually.
  'post_excerpt'   => [ <string> ] // For all your post excerpt needs.
  'post_date'      => [ Y-m-d H:i:s ] // The time post was made.
  'post_date_gmt'  => [ Y-m-d H:i:s ] // The time post was made, in GMT.
  'comment_status' => [ 'closed' | 'open' ] // Default is the option 'default_comment_status', or 'closed'.
  'post_category'  => [ array(<category id>, ...) ] // Default empty.
  'tags_input'     => [ '<tag>, <tag>, ...' | array ] // Default empty.
  'tax_input'      => [ array( <taxonomy> => <array | string> ) ] // For custom taxonomies. Default empty.
  'page_template'  => [ <string> ] // Requires name of template file, eg template.php. Default empty.
);  
    $post_id = wp_insert_post($post);

Which helps me alot!!.

For more information about wp_insert_post clickhere

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!