¿Se pueden representar dinámicamente las publicaciones de WordPress?

4 minutos de lectura

¿Se pueden representar dinamicamente las publicaciones de Wordpress
Yervand Jalapyan

Quiero hacer una página de blog que genere contenido para un usuario en particular en función de sus Me gusta, actividad, etc. de Facebook. Por ejemplo, me gusta Shakira y Coca Cola en Facebook. Al ingresar al blog y conectarse a través de Facebook, el blog obtiene esa información y busca el video de YouTube de Shakira a través de la API de YouTube y me muestra el video en una publicación de WordPress. Después el blog busca noticias relacionadas con Coca Cola y muestra noticias al respecto también en un post.

No hay problema con la conexión de FB, la búsqueda de YouTube o la búsqueda de Google. Mi problema es WordPress. Como puede haber muchos usuarios y se puede generar mucho contenido para cada usuario, no puedo guardar todas las publicaciones en la tabla MySQL. Quiero generar publicaciones dinámicamente. No estoy pidiendo código aquí, solo quiero escuchar buenas soluciones e ideas sobre cómo se puede hacer esto.

  • ¿Tienes esta solución funcionando de alguna manera? ¿Qué has intentado hasta ahora?

    – ajtrichards

    19 dic. 13 a las 14:58

¿Se pueden representar dinamicamente las publicaciones de Wordpress
ajtrichards

Como solución, podría usar la página 404 para generar esta publicación dinámica.

Hay una publicación de blog aquí que ofrece una solución similar: http://www.blogseye.com/creating-fake-wordpress-posts-on-the-fly/

El código utilizado para generar las publicaciones falsas:

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');

Convierta esto en un complemento o agréguelo al archivo functions.php.

Solución alternativa:

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();
    }

Esta es otra forma de crear publicaciones dinámicamente.

    $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);

Que me ayuda mucho!!.

Para más información sobre wp_insert_post haga clic aquí

.

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad