24
May

Importar archivos CSV en WordPress

¿De que nos sirve importar archivos Csv en WordPress? Bueno la principal funcionalidad puede ser para crear muchos artículos de golpe sin tener que ingresarlos de forma manual cada uno. En afiliación las plataformas nos ofrecen un archivo csv para muchos de sus anunciantes así podemos tener un listado de todos sus productos y a través de este método los podamos publicar en nuestro WordPress.

Para poder importar los archivos Csv en WordPress vamos a utilizar el plugin CSV Importer que lo podemos descargar de forma gratuita desde el directorio de plugins de WordPress. Este plugin nos da la posibilidad de importar archivos CSV a nuestro blog pero el archivo CSV debe respetar la estructura que marca el plugin y por lo menos tener unos campos básicos como el título y cuerpo del post.

En las notas del plugin encontraremos los detalles del formato que deberá tener el archivo Csv  antes de importarlo a WordPress para que no nos de errores. Como dijimos antes como mínimo debemos tener el título y cuerpo del post que vayamos a publicar, pero hay más informaciones básicas que veremos a continuación, estos son los cabezales que deberá tener el archivo Csv para poder importarlo:

  • csv_post_title: título del post.
  • csv_post_post: cuerpo del post.
  • csv_post_type: especifica el tipo de post, puede ser post, page o algún tipo de post customizado.
  • csv_post_excerpt: excerpt del post.
  • csv_post_categories: podemos especificar en que categorías queremos que se publique el post, si queremos que sea en más de una las podemos ingresar separadas por comas.
  • csv_post_tags: tags del post, al igual que las categorías podemos ingresar varios separados por comas.
  • csv_post_date: podemos especificar la fecha en que se publique el artículo, el formato de fecha debe estar en ingles.

Estos son algunos campos básicos que podemos utilizar para publicar nuestros posts, en las notas del plugin hay más especificaciones más avanzadas como especificar el autor, custom fields, comentarios y más.

Es muy probable que nuestro archivo Csv no lo tengamos preparado para utilizar con este plugin de WordPress así que lo vamos a necesita editar antes de poder importarlo. Para esto podemos utilizar herramientas como el Excel, el editor de hojas de calculo de Open Office o una alternativa muy buena que me he encontrado es un editor gratuito de archivos Csv llamado CSVed con el que tendremos muchísimas posibilidades de editar nuestro archivo antes de subirlo.

Si aún tienes dudas sobre como debería quedar tu archivo Csv el plugin viene con algunos ejemplos, los puedes encontrar en la carpeta examples.

examples/sample.csv

Una vez que tengamos pronto el formato del archivo Csv para importar a nuestro wordpress el proceso es muy sencillo. Dentro de nuestro panel de wordpress vamos a Herramientas y allí encontraremos el plugin CSV Importer. Como todas las especificaciones ya están en el archivo CSV solamente tenemos que buscar el archivo que queremos subir y especificar si queremos que se suba como borrador o automáticamente ya se publique en el blog, las primeras veces siempre es conveniente probar a publicar como borradores, una vez que ya tengamos más práctica lo podemos hacer directamente.

26
Dec

Agregar Twitter @AnyWhere a los comentarios de WordPress

Siguiendo el tutorial sobre “How to Integrate Twitters @Anywhere with your WordPress Comments” pude integrar Twitter @AnyWhere en los comentarios de mi blog wordpress. El tutorial no es tan sencillo, pero como no encontré ningún plugin que lo haga de forma automática vamos a verlo de a poco.

Twitter AnyWhere

Utilizar la API de Twitter

Lo primero que hay que hacer es registrarse para utilizar la API de Twitter. Esto es necesario para utilizar Twitter @AnyWhere.

Agregar el campo de Twitter al formulario de comentarios

Lo primero es agregar el campo en el formulario de comentarios para que tus visitantes puedan ingresar su nombre de usuario de Twitter. Desde el editor del tema vamos al archivo comments.php y buscamos donde se agregan los campos del formulario y le agregamos los siguientes:

1
2
3
4
<p>
    <input type="text" name="twitter_username" id="twitter_username" class="text" value="<?php echo bm_getCurrentTwitterUser(); ?>" size="22" tabindex="4" />
    <label for="twitter_username"><?php _e('Twitter Username', BM_THEMENAME); ?></label>
</p>

Recordar el nombre de usuario de Twitter

Se va a guardar el nombre de usuario de Twitter en una cookie que será salvado más adelante. Esto sirve para que los usuarios que recurrentes no tengan que completar el campo campo cada vez que quieran comentar algo, de esta forma queda consistente con los demás campos del formulario. En el archivo functions.php debemos agregar la siguiente función:

1
2
3
4
5
6
7
8
9
10
11
function bm_getCurrentTwitterUser () {
    $comment_twitterUser = '';

    if (isset($_COOKIE['comment_twitteruser_' . COOKIEHASH])) {
        $comment_twitterUser = $_COOKIE['comment_twitteruser_' . COOKIEHASH];
        $comment_twitterUser = stripslashes ($comment_twitterUser);
        $comment_twitterUser = esc_attr ($comment_twitterUser);
    }

    return $comment_twitterUser;
}

Agregar el nombre de usuario de Twitter para los usuarios registrados

De esta forma los usuarios registrados podrán agregar su nombre de usuario de Twitter desde su perfil, así este valor se agregara automáticamente en los comentarios que estos usuarios dejen. Nuevamente en el archivo functions.php agregamos estas funciones:

1
2
3
4
5
6
function my_new_contactmethods( $contactmethods ) {
    $contactmethods['twitter'] = 'Twitter';
    return $contactmethods;
}

add_filter('user_contactmethods','my_new_contactmethods',10,1);

Guardando el nombre de usuario de Twitter en los comentarios

Para los usuarios que no están registrados en el blog debemos guardar este valor en cada comentario. Para esto en el archivo functions.php debemos agregar el siguiente código:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
function bm_saveTwitterUser ($post_id) {
    global $user;

    // only save the twitter details for users who are not logged in
    if (!is_user_logged_in()) {

        // if an account name is specified
        if (isset($_POST['twitter_username'])) {
            // save cooke for...
            $comment_cookie_lifetime = apply_filters('comment_cookie_lifetime', 30000000);
            // sanitize username
            $twitter_user = esc_html ($_POST['twitter_username']);
            $twitter_user = str_replace('http://twitter.com/', '', $twitter_user);
            // save cookie to use in comment form
            setcookie('comment_twitteruser_' . COOKIEHASH, $twitter_user, time() + $comment_cookie_lifetime, COOKIEPATH, COOKIE_DOMAIN);
            // save name to db
            add_comment_meta ($post_id, 'twitter_user', $twitter_user, true);
        }
    }
}

add_action ('comment_post', 'bm_saveTwitterUser');

Mostrar el nombre de usuario de Twitter en los comentarios

En esta parte es donde más pueden utilizar la imaginación para mostrar el nombre de usuario de Twitter, yo lo coloque seguido al nombre de quien comenta, pero lo pueden colocar en cualquier parte del comentario. El código se debe colocar en el archivo comments.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
$twittername = '';
$commentAuthorUrl = get_comment_author_url();

if ($comment->user_id > 0) {
    $auth = get_userdata ($comment->user_id);
}

if (isset($auth->twitter)) {
    $twittername = $auth->twitter;
} else {
    $twitter_user_array = get_comment_meta (get_comment_ID(), 'twitter_user');
    if ($twitter_user_array[0]) {
        $twittername = $twitter_user_array[0];
    }
}

if ($twittername != '') {
?>
                (<a class="twitter_anywhere" href="http://twitter.com/<?php echo $twittername; ?>">@<?php echo $twittername; ?></a>)
<?php
}
?>

Agregar el Javascript para mostrar la tarjeta de Twitter @AnyWhere

El código Javascript es el encargado de armar la tarjeta de Twitter @AnyWhere en los comentarios de WordPress. Se puede colocar en el archivo header.php dentro de las etiquetas head o hay quienes recomiendan colocarlo en el footer.php antes de cerrar la etiqueta body para que no interfiera con la carga de la página.

1
2
3
4
5
6
7
8
9
<script src="http://platform.twitter.com/anywhere.js?id=YOUR_API_KEY&v=1"></script>
<script type="text/javascript">
    twttr.anywhere(function(twitter) {
        twitter('.commentlist').linkifyUsers();
        twitter('.twitter_anywhere').hovercards({
            infer: true
        });
    });
</script>

Es necesario sustituir “YOUR_API_KEY” en el javascript por la clave que nos dieron al registrar la aplicación.