martes, 7 de junio de 2011

Hoy en AyudaWordPress.com

Hoy en AyudaWordPress.com

Link to Ayuda WordPress

Eliminar completamente los comentarios

Posted: 07 Jun 2011 04:11 AM PDT

No me refiero a eliminarlos de la plantilla para que no puedan comentar, ni siquiera a desactivarlos desde los ajustes de WordPress, me refiero a eliminar completamente los comentarios y cualquier referencia, incluso visual, a su existencia.

Está claro, los comentarios son parte de los blogs, esencia misma de la Web 2.0, pero hay ocasiones en que - sobre todo para trabajos a clientes - en que es posible que quieras quitar cualquier atisbo de que tal cosa siquiera existe.

En este raro, pero probable, caso, Frank ha elaborado un plugin cuyo código quita toda referencia a los comentarios, vamos, que dejan de existir en tu WordPress, no verá rastro ni cita alguna a los mismos.

Solo tienes que guardar este código con el nombre que quieras, subirlo a la carpeta 'plugins' de tu instalación de WordPress, activarlo y habrás eliminado totalmente los comentarios de tu WordPress.

PHP:
  1. <?php
  2. /**
  3. * Plugin Name: Eliminar comentarios completamente
  4. * Plugin URI: http://bueltge.de/
  5. * Text Domain: remove_comments_absolute
  6. * Domain Path: /languages
  7. * Description: Desactiva las funciones de comentarios y quita todas sus referencias en la instalación de WordPress
  8. * Author: Frank Bültge
  9. * Version: 0.0.1
  10. * Licence: GPLv2
  11. * Author URI: http://bueltge.de
  12. * Upgrade Check: none
  13. * Last Change: 01.06.2011
  14. */
  15. if ( ! class_exists( 'Remove_Comments_Absolute' ) ) {
  16.     add_action( 'plugins_loaded', array( 'Remove_Comments_Absolute', 'get_object' ) );
  17.     class Remove_Comments_Absolute {
  18.         static private $classobj = NULL;
  19.         /**
  20.          * Constructor, init on defined hooks of WP and include second class
  21.          *
  22.          * @access  public
  23.          * @since   0.0.1
  24.          * @uses    add_filter, add_action
  25.          * @return  void
  26.          */
  27.         public function __construct () {
  28.             add_filter( 'the_posts', array( $this, 'set_comment_status' ) );
  29.             add_filter( 'comments_open', array( $this, 'close_comments', 10, 2 ) );
  30.             add_filter( 'pings_open', array( $this, 'close_comments', 10, 2 ) );
  31.             add_action( 'admin_init', array( $this, 'remove_comments' ) );
  32.             add_filter( 'add_menu_classes', array( $this, 'add_menu_classes' ) );
  33.             add_action( 'admin_head', array( $this, 'remove_comments_areas' ) );
  34.             add_action( 'wp_before_admin_bar_render', array( $this, 'admin_bar_render' ) );
  35.         }
  36.         /**
  37.          * Handler for the action 'init'. Instantiates this class.
  38.          *
  39.          * @access  public
  40.          * @since   0.0.1
  41.          * @return  object $classobj
  42.          */
  43.         public function get_object () {
  44.             if ( NULL === self :: $classobj ) {
  45.                 self :: $classobj = new self;
  46.             }
  47.             return self :: $classobj;
  48.         }
  49.         /**
  50.          * Set the status on posts and pages - is_singular ()
  51.          *
  52.          * @access  public
  53.          * @since   0.0.1
  54.          * @uses    is_singular
  55.          * @param   string $posts
  56.          * @return  string $posts
  57.          */
  58.         public function set_comment_status ( $posts ) {
  59.             if ( ! empty( $posts ) && is_singular() ) {
  60.                 $posts[0]->comment_status = 'closed';
  61.                 $posts[0]->post_status = 'closed';
  62.             }
  63.             return $posts;
  64.         }
  65.         /**
  66.          * Close comments, if open
  67.          *
  68.          * @access  public
  69.          * @since   0.0.1
  70.          * @param   string | boolean $open
  71.          * @param   string | integer $post_id
  72.          * @return  string $posts
  73.          */
  74.         public function close_comments ( $open, $post_id ) {
  75.             // if not open, than back
  76.             if ( ! $open )
  77.                 return $open;
  78.             $post = get_post( $post_id );
  79.             if ( $post -> post_type ) // all post types
  80.                 return FALSE;
  81.             return $open;
  82.         }
  83.         /**
  84.          * Change options for dont use comments
  85.          * Remove meta boxes on edit pages
  86.          * Remove support on all post types for comments
  87.          * Remove menu-entries
  88.          *
  89.          * @access  public
  90.          * @since   0.0.1
  91.          * @uses    update_option, get_post_types, remove_meta_box, remove_post_type_support
  92.          * @return  void
  93.          */
  94.         public function remove_comments () {
  95.             // int values
  96.             foreach ( array( 'comments_notify', 'default_pingback_flag' ) as $option )
  97.                 update_option( $option, 0 );
  98.             // string false
  99.             foreach ( array( 'default_comment_status', 'default_ping_status' ) as $option )
  100.                 update_option( $option, 'false' );
  101.             // all post types
  102.             // alternative define an array( 'post', 'page' )
  103.             foreach ( get_post_types() as $post_type ) {
  104.                 // comment status
  105.                 remove_meta_box( 'commentstatusdiv', $post_type, 'normal' );
  106.                 // remove trackbacks
  107.                 remove_meta_box( 'trackbacksdiv', $post_type, 'normal' );
  108.                 // remove all commnts from tabels
  109.                 remove_post_type_support( $post_type, 'comments' );
  110.             }
  111.             // remove dashboard meta box for recents comments
  112.             remove_meta_box( 'dashboard_recent_comments', 'dashboard', 'normal' );
  113.             // Remove menu entries with WP 3.1 and higher
  114.             if ( function_exists( 'remove_menu_page' ) ) {
  115.                 remove_menu_page( 'edit-comments.php' );
  116.                 remove_submenu_page( 'options-general.php', 'options-discussion.php' );
  117.             } else {
  118.                 // unset comments
  119.                 unset( $GLOBALS['menu'][25] );
  120.                 // unset menuentry Discussion
  121.                 unset( $GLOBALS['submenu']['options-general.php'][25] );
  122.             }
  123.         }
  124.         /**
  125.          * Add class for last menu entry with no 20
  126.          *
  127.          * @access  public
  128.          * @since   0.0.1
  129.          * @param   array string $menu
  130.          * @return  array string $menu
  131.          */
  132.         function add_menu_classes ( $menu ) {
  133.             $menu[20][4] .= ' menu-top-last';
  134.             return $menu;
  135.         }
  136.         /**
  137.          * Remove areas for comments in backend via JS
  138.          *
  139.          * @access  public
  140.          * @since   0.0.1
  141.          * @return  string with js
  142.          */
  143.         public function remove_comments_areas () {
  144.             ?>
  145.             <script type="text/javascript">
  146.             //<![CDATA[
  147.             jQuery(document).ready( function($) {
  148.                 $( '.table_discussion' ).remove();
  149.             });
  150.             //]]>
  151.             </script>
  152.             <?php
  153.         }
  154.         /**
  155.          * Remove comment entry in Admin Bar
  156.          *
  157.          * @access  public
  158.          * @since   0.0.1
  159.          * @uses    remove_menu
  160.          * @return  void
  161.          */
  162.         public function admin_bar_render () {
  163.             // remove entry in admin bar
  164.             $GLOBALS['wp_admin_bar'] -> remove_menu( 'comments' );
  165.         }
  166.     } // end class
  167. } // end if class exists
  168. ?>

Lo que hace el plugin es lo siguiente:

  • Cierra todos los formularios de comentarios existentes
  • Quita los widgets relacionados con comentarios en el editor
  • Quita todos los enlaces a la gestión de comentarios de los menús de WordPress
  • Quita la columna de comentarios del Escritorio
  • Quita los ajustes de comentarios

Aquí tienes unas capturas de como queda de solito y desolado WordPress sin comentarios. Ahora tu decides, igual para algún proyecto te viene bien.
nocomentarios1 nocomentarios2

Contenido exclusivo para suscriptores al Feed

¡Gracias por seguirnos a diario!. Premiamos tu fidelidad ofreciéndote habitualmente contenidos exclusivos. Hoy puedes descargar:

Clic aquí para iniciar la descarga Guía Domina tu Blog

lunes, 6 de junio de 2011

Hoy en AyudaWordPress.com

Hoy en AyudaWordPress.com

Link to Ayuda WordPress

Google +1 ya en WordPress.com

Posted: 05 Jun 2011 04:37 PM PDT

Si tienes un blog en WordPress.com ya estás tardando en añadir el botón Google +1 que se ha incorporado a la opción de “Compartir” (Ajustes -> Compartir).

Esta nueva opción se ha añadido, de momento sin previo aviso, así que solo tienes que ir a la página de ajustes y arrastrar el botón.

Que yo sepa aún no se ha incorporado esta posibilidad en el plugin instalable ShareDaddy así que nos queda esperar un poco más para los que tengamos este plugin en un WordPress alojado.

sábado, 4 de junio de 2011

Hoy en AyudaWordPress.com

Hoy en AyudaWordPress.com

Link to Ayuda WordPress

Backup de WordPress en Dropbox

Posted: 04 Jun 2011 12:42 AM PDT

Si eres, como yo, una apasionado del servicio Dropbox de alojamiento en la nube de archivos seguro que te encantará esta entrada.

Y es que ¿para qué quieres tanto espacio si no puedes aprovecharlo para algo realmente útil?. Yo uso Dropbox para muchas cosas útiles, como documentos compartidos de la empresa, sincronización de ficheros entre el Mac y el iPad, pero no sabía que había algo para hacer copia de seguridad de WordPress en Dropbox.

Y lo hay, es un plugin, así de fácil. Solo tienes que instalar WordPress backup to Dropbox, eliges la carpeta que quieres salvaguardar y el nombre de la carpeta en Dropbox donde se almacenará, programas cada cuanto quieres que se haga la copia de segurida y ya está. Antes, deberás autorizar al plugin a acceder a tu cuenta de Dropbox, claro.

Si aún no usas Dropbox puedes registrarte en este enlace, de paso me regalas unos cuantos megas para seguir haciendo copias de seguridad y esas cosas.

Contenido exclusivo para suscriptores al Feed

¡Gracias por seguirnos a diario!. Premiamos tu fidelidad ofreciéndote habitualmente contenidos exclusivos. Hoy puedes descargar:

Clic aquí para iniciar la descarga Guía para Administrar WordPress

viernes, 3 de junio de 2011

Hoy en AyudaWordPress.com

Hoy en AyudaWordPress.com

Link to Ayuda WordPress

Incluir tipos de entrada personalizados en el buscador de WordPress

Posted: 03 Jun 2011 07:37 AM PDT

Hace unos días leía una estupenda entrada de Rocío Valdivia, en la que compartía el modo de conseguir que el buscador de WordPress incluya resultados de tipos de entradas personalizadas.

Lo solucionaba con un simple código a añadir en el fichero functions.php del tema, este:

PHP:
  1. // Define los tipos de posts donde se harán las búsquedas (posts normales, páginas, feed, videojuegos y películas)
  2. function searchAll( $query ) {
  3. if ( $query->is_search ) {
  4. $query->set( 'post_type', array( 'post', 'page', 'feed', 'videojuegos', 'peliculas'));
  5. }
  6. return $query;
  7. }
  8.  
  9. // Añadimos el flitro para que ahora, en las búsquedas por defecto,
  10. //añada los tipos que le hemos definido en la función anterior.
  11. add_filter( 'the_search_query', 'searchAll' );

Luego solo tienes que sustituir los tipos de entrada del ejemplo de Rocío por los tuyos y ya lo tienes.

jueves, 2 de junio de 2011

Hoy en AyudaWordPress.com

Hoy en AyudaWordPress.com

Link to Ayuda WordPress

¿Plugin o functions.php?

Posted: 02 Jun 2011 10:04 AM PDT

Desde hace algún tiempo estamos viendo que cada vez se populariza más la utilización del fichero functions.php de nuestro tema para añadir funcionalidades, muchas veces como un modo rápido de añadir características a WordPress sin tener que instalar un plugin, simplemente añadiendo un pequeño código que realiza lo que queremos. Pero – todo tiene algún pero – ¿es correcto actuar así?, es más, ¿qué es mejor, un plugin o código en el fichero functions.php?.

Vamos a ver un poco como funciona este fichero casi mágico y si es mejor usarlo o instalar plugins ¿te parece? …

¿En qué se diferencian?

Si acabas de empezar con WordPress seguramente, o no sabes la diferencia o realmente ni te importa, con que funcione vas que te matas. Pero para que lo sepas, y así también vas teniendo algo de culturilla WordPress, de manera sencilla, se puede decir que los elementos de tu archivo functions.php solo se ejecutan en el tema, mientras que los plugins se ejecutan en todo momento.

También debes saber que la mayoría de los plugins se pueden ejecutar dentro del fichero functions.php y viceversa, puedes hacer un plugin sencillo de un código para functions.php. Y lo mejor es que funcionarán bien ambos.

Vale, pero ¿qué hace el archivo functions.php?

El fichero functions.php se ha estandarizado en la mayoría de los temas actuales para WordPress. En realidad no es necesario pero es casi seguro que lo encontrarás en la mayoría de los temas. El código que veas en ese fichero se ejecutará en el tema y ya, eso es todo. Ahí te vas a encontrar funciones básicas de WordPress que “hacen cosas”, como register_sidebar(), el más típico, que habilita que el tema tenga la funcionalidad de widgets, pero te encontrarás muchos otros códigos seguramente, unos modificarán partes del diseño del tema, otros se ocuparán de la página de opciones del tema y cosas así.

¿Y por qué no un plugin?

Los plugins los tienes en el repositorio oficial de WordPress.org, y también puedes instalarlos desde el escritorio de tu WordPress.. Pueden hacer cualquier cosa que hagas también con el fichero functions.php pero no se ejecutan solo con el tema, se ejecutan todo el tiempo si están activos. Los plugins hay que instalaros y activarlos desde el menú de … Plugins. Si no están activos no se ejecutan (con la excepción de los plugins de la carpeta mu-plugins de multisitio). Lo habitual es que los plugins tengan más funcionalidades que simplemente hacer que tengas widgets o un menú, pero también pueden hacerse cuan simples como desees.

Entonces ¿por qué y cuando usar un plugin?

Hay situaciones en que querrás que un plugin intercepte funciones o tags de plantilla de WordPress, en ese caso lo mejor es un plugin, pues se ejecuta todo el tiempo. Un buen ejemplo es el plugin para mostrar una versión móvil de tu sitio, WPTouch, que no necesita de tu tema sino que antepone uno distinto antes de que se muestre el activo, detectando si el dispositivo con el que están visitando tu sitio es un iPad, iPhone, Android o lo que sea. Este tipo de funciones, si estuvieran en el fichero functions.php serían menos eficaces e incluso no se ejecutarían porque incluso ignoran el TEMPLATEPATH.

Otro bueno ejemplo son los tipos de entrada personalizados, pues afectan al funcionamiento interno de WordPress, independientemente del tema que utilices.

¿Se entiende?

Casos raritos

Vale, hay casos extraños, pero de puro raros es algo que solo abordarás en caso de encontrártelos o necesitar esa rareza. Por ejemplo, cargar jQuery desde el CDN de Google, y que quieras que cargue en un diseño o no, cosas así.

En resumen …

La conclusión es que si la característica que que quieres incorporar debe afectar al diseño de tu sitio (al tema) entonces siempre optes por el fichero functions.php, en caso contrario, si necesitas funcionalidades más globales, seguramente lo mejor sea un plugin. ¿Te parece razonable?.

Esto proviene del genial planteamiento de Curtis McHale

Contenido exclusivo para suscriptores al Feed

¡Gracias por seguirnos a diario!. Premiamos tu fidelidad ofreciéndote habitualmente contenidos exclusivos. Hoy puedes descargar:

Clic aquí para iniciar la descarga Guía Windows Live Writer

miércoles, 1 de junio de 2011

Hoy en AyudaWordPress.com

Hoy en AyudaWordPress.com

Link to Ayuda WordPress

Botón +1 de Google en WordPress

Posted: 01 Jun 2011 12:20 PM PDT

Pues nada, que ya tenemos aquí el famoso botón +1 de Google para insertarlo en nuestros sitios y que la gente que nos visita le sume puntos en los resultados de búsqueda (se supone).

Si quieres incluirlo en tu sitio WordPress el proceso es sencillo, vamos a verlo rápidito para que tengas rato para ponerlo cuanto antes …

  1. Vas al sitio de Google Webmasters para añadir el botón +1 de Google
  2. Eliges idioma, tamaño de botón y esas cosas estéticas para que se adapte (poco) al diseño de tu tema
  3. Hacemos clic en "Opciones avanzadas" para determinar la URL adecuada, que en WordPress tiene su peculiaridad
  4. Dejamos en "Opciones avanzadas" las primeras opciones en los valores por defecto y en la "URL para +1" ponemos simplemente esto: the_permalink. Con esto sumaremos puntos al enlace permanente de la página en la que insertemos el código, sea cual sea. Si ponemos la URL de nuestro sitio todos los votos irían para la portada … aunque también es una opción si así lo prefieres.
  5. Se generará un código, simplemente lo copiamos
  6. Pegamos la primera parte del código generado (normalmente) en el fichero header.php, justo antes de la etiqueta < / head > o justo antes de < body >, lo que prefieras:
    <!-- Añade esta etiqueta en la cabecera o delante de la etiqueta body. -->
    <script type="text/javascript" src="http://apis.google.com/js/plusone.js">
      {lang: 'es'}</script>

  7. Pegamos la segunda parte del código generado en el loop de index.php y en single.php, en el lugar elegido para que se muestre. El código sería este:
    <!-- Añade esta etiqueta donde quieras colocar el botón +1 -->
    <g:plusone size="tall" href="the_permalink()"></g:plusone>

  8. ¡Ya está!

Yo ya lo pondré cuando tenga un ratillo, ahora he preferido compartir esta mini guía contigo. Además, también puedes esperar un par de días, seguro que pronto el botón está disponible en plugins como AddThis o incluso algunos nuevos específicos para insertar el botón +1 de Google sin tocar código. Tu eliges.

Si te apetece, aquí tienes un vídeo que explica para qué sirve el famoso botón …

Seguidores

Archivo del blog