Añadir comentarios a las fichas de autor en WordPress
Por defecto, WordPress no permite la opción de añadir comentarios a las páginas de autor/usuario. Para añadir esta funcionalidad, vamos a crear un tipo de post específico para albergar estos comentarios, y a asociar un post de este tipo con cada usuario que tengamos por medio de un meta value. Por último, cuando queramos mostrar los comentarios para ese usuario, buscaremos su post asociado y mostraremos sus comentarios. Paso a paso sería:
1. Creamos un tipo de Post al que vamos a llamar Comentarios Usuarios, Para esto pegamos estas lineas en nuestro archivo functions.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
function create_custom_post_types() { register_post_type('user-comments', // Register Custom Post Type array( 'labels' => array( 'name' => __('Comentarios Usuarios', 'user-comments'), // Rename these to suit 'singular_name' => __('Entidad', 'user-comments'), 'add_new' => __('Añadir nuevo', 'user-comments'), 'add_new_item' => __('Añadir nueva entidad', 'user-comments'), 'edit' => __('Editar', 'user-comments'), 'edit_item' => __('Editar entidad', 'user-comments'), 'new_item' => __('Nueva entidad', 'user-comments'), 'view' => __('Ver entidad', 'user-comments'), 'view_item' => __('Ver entidad', 'user-comments'), 'search_items' => __('Buscar entidades', 'user-comments'), 'not_found' => __('Ninguna entidad encontrada', 'user-comments'), 'not_found_in_trash' => __('Ninguna entidad encontrada en la papelera', 'user-comments') ), 'public' => true, 'hierarchical' => true, // Allows your posts to behave like Hierarchy Pages 'has_archive' => false, 'query_var' => true )); } add_action('init', 'create_custom_post_types'); |
Si hemos hecho esto bien, veremos en nuestro admin una nueva sección llamada «Comentarios Usuarios».
2. Ahora, en la ficha del usuario, vamos a comprobar si ese usuario tiene un user_meta llamado «post-tablon». Si no lo tiene significa que es la primera vez que se entra en su perfil, y creamos un post para almacenar sus comentarios. Si lo tiene significa que ya hemos hecho esto antes, y recuperamos el id de su post asociado. Por último cargamos el post asociado y mostramos sus comentarios:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
<?php $post_comments = get_user_meta(get_the_author_meta('ID'), 'post-tablon', true); if($post_comments == ""){ $my_post = array( 'post_title' => get_the_author_meta('user_email'), 'post_type' => 'user-comments', 'post_status' => 'publish', 'post_author' => get_the_author_meta('ID') ); $post_comments = wp_insert_post( $my_post ); add_user_meta( get_the_author_meta('ID'), 'post-tablon', $post_comments, true ); } global $post; $post = get_post($post_comments); setup_postdata($post); comments_template(); ?> |