<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Neuseed Creative Solutions &#187; wordpress</title>
	<atom:link href="http://www.neuseed.com/tag/wordpress/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.neuseed.com</link>
	<description>Soluciones creativas de diseño</description>
	<lastBuildDate>Fri, 03 Feb 2012 07:00:25 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
		<item>
		<title>Como crear un formulario de acceso a usuarios en WordPress</title>
		<link>http://www.neuseed.com/2011/10/como-crear-un-formulario-de-acceso-a-usuarios-en-wordpress/</link>
		<comments>http://www.neuseed.com/2011/10/como-crear-un-formulario-de-acceso-a-usuarios-en-wordpress/#comments</comments>
		<pubDate>Thu, 27 Oct 2011 12:04:11 +0000</pubDate>
		<dc:creator>Deryck Oñate Espinel</dc:creator>
				<category><![CDATA[Tutoriales, Trucos y Recursos]]></category>
		<category><![CDATA[formularios]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.neuseed.com/?p=476</guid>
		<description><![CDATA[Hace poco tuvimos que desarrollar un área segura para clientes de un sitio web que por supuesto utiliza WordPress como CMS. Es cierto que WordPress tiene su administrador y además su propia página de acceso a usuarios pero en este caso necesitábamos abstraer a los usuarios de esa área que es solo para administradores y [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.neuseed.com/2011/10/como-crear-un-formulario-de-acceso-a-usuarios-en-wordpress/"><img src="http://www.neuseed.com/wp-content/uploads/2011/10/simple-login-wordpress.jpg" alt="Formulario de acceso a usuarios en WordPress" title="Formulario de acceso a usuarios en WordPress" width="610" height="400" class="alignnone size-full wp-image-487" /></a></p>
<p>Hace poco tuvimos que desarrollar un área segura para clientes de un sitio web que por supuesto utiliza WordPress como CMS. Es cierto que WordPress tiene su administrador y además su propia página de acceso a usuarios pero en este caso necesitábamos abstraer a los usuarios de esa área que es solo para administradores y además por cuestiones estéticas. Los usuarios utilizarían el mismo sistema de acceso a usuarios que tiene WordPress pero nunca verían el área de administradores.</p>
<p>Lo primero que tuve que hacer fue crear un formulario de acceso que se integrara con el diseño de la página y es lo que compartiré en este tutorial. No hay que complicarlo demasiado así que lo haré simple. El objetivo es que entiendan la base para que luego puedan aplicarlo a su gusto en donde haga falta.</p>
<p><span id="more-476"></span></p>
<p>Lo que haremos será crear una página plantilla en el mismo Theme Twentyeleven que traer WordPress activo por defecto.</p>
<p>Lo primero es crear el archivo e identificarlo como plantilla para que WordPress lo reconozca.</p>
<pre class="brush: php; title: ; notranslate">
&lt;?php /**  * Template Name: User Login */ ?&gt;
</pre>
<p>Vamos a mantener el diseño y la estructura así que incluimos el encabezado y los divs respectivos.</p>
<p><code></p>
<pre class="brush: php; title: ; notranslate">
&lt;?php get_header(); ?&gt;
&lt;div id=&quot;primary&quot; class=&quot;showcase&quot;&gt;
   &lt;div id=&quot;content&quot; role=&quot;main&quot;&gt;
</pre>
<p></code></p>
<p>Lo próximo, el código que hace todo el trabajo.</p>
<p><code></p>
<pre class="brush: php; title: ; wrap-lines: true; notranslate">
    &lt;h2&gt;
      &lt;?php the_title(); ?&gt;
    &lt;/h2&gt;
    &lt;?php if ( is_user_logged_in() ) : ?&gt;
    &lt;p&gt;Ya estás autenticado. &lt;a href=&quot;&lt;?php echo wp_logout_url( get_permalink() ); ?&gt;&quot; title=&quot;Cerra sesi&amp;oacute;n de usuario&quot;&gt;Salir&lt;/a&gt;&lt;/p&gt;
    &lt;?php else : ?&gt;
    &lt;form name=&quot;loginform&quot; id=&quot;loginform&quot; action=&quot;&lt;?php echo get_option('home'); ?&gt;/wp-login.php&quot; method=&quot;post&quot;&gt;
      &lt;p&gt;
        &lt;label&gt;Username&lt;br /&gt;
          &lt;input type=&quot;text&quot; name=&quot;log&quot; id=&quot;user_login&quot; class=&quot;input&quot; value=&quot;&quot; size=&quot;20&quot; tabindex=&quot;10&quot; /&gt;
        &lt;/label&gt;
      &lt;/p&gt;
      &lt;p&gt;
        &lt;label&gt;Password&lt;br /&gt;
          &lt;input type=&quot;password&quot; name=&quot;pwd&quot; id=&quot;user_pass&quot; class=&quot;input&quot; value=&quot;&quot; size=&quot;20&quot; tabindex=&quot;20&quot; /&gt;
        &lt;/label&gt;
      &lt;/p&gt;
      &lt;p class=&quot;forgetmenot&quot;&gt;
        &lt;label&gt;
          &lt;input name=&quot;rememberme&quot; type=&quot;checkbox&quot; id=&quot;rememberme&quot; value=&quot;forever&quot; tabindex=&quot;90&quot; /&gt;
          Remember Me&lt;/label&gt;
      &lt;/p&gt;
      &lt;p class=&quot;submit&quot;&gt;
        &lt;input type=&quot;submit&quot; name=&quot;wp-submit&quot; id=&quot;wp-submit&quot; class=&quot;button-primary&quot; value=&quot;Log In&quot; tabindex=&quot;100&quot; /&gt;
        &lt;input type=&quot;hidden&quot; name=&quot;redirect_to&quot; value=&quot;&lt;?php echo get_permalink() ?&gt;&quot; /&gt;
        &lt;input type=&quot;hidden&quot; name=&quot;testcookie&quot; value=&quot;1&quot; /&gt;
      &lt;/p&gt;
    &lt;/form&gt;
    &lt;p id=&quot;nav&quot;&gt; &lt;a href=&quot;&lt;?php echo get_option('home'); ?&gt;/wp-login.php?action=lostpassword&quot; title=&quot;Password Lost and Found&quot;&gt;Lost your password?&lt;/a&gt; &lt;/p&gt;
    &lt;?php endif; ?&gt;
</pre>
<p></code></p>
<p>Este código anterior evalúa mediante <strong>is_user_logged_in()</strong> si estás autenticado como usuario. De ser así te avisa y te da un enlace de salida aunque con un poco más de trabajo y ganas puedes mostrar un panel de opciones de perfil, información del usuario y más datos relevantes para el usuario. De lo contrario, si no estás autenticado como usuario muestra un formulario de acceso.</p>
<p>Para terminar, el código que muestra la barra lateral o sidebar, el pié de página o footer y los divs que cierran toda la estructura de dicha página.</p>
<p><code></p>
<pre class="brush: php; title: ; wrap-lines: true; notranslate">
    &lt;div class=&quot;widget-area&quot; role=&quot;complementary&quot;&gt;
      &lt;?php if ( ! dynamic_sidebar( 'sidebar-2' ) ) : ?&gt;
      &lt;?php
						the_widget( 'Twenty_Eleven_Ephemera_Widget', '', array( 'before_title' =&gt; '&lt;h3 class=&quot;widget-title&quot;&gt;', 'after_title' =&gt; '&lt;/h3&gt;' ) );
						?&gt;
      &lt;?php endif; // end sidebar widget area ?&gt;
    &lt;/div&gt;
    &lt;!-- .widget-area --&gt; 

  &lt;/div&gt;
  &lt;!-- #content --&gt;
&lt;/div&gt;
&lt;!-- #primary --&gt;

&lt;?php get_footer(); ?&gt;
</pre>
<p></code></p>
<p>Con esto estamos listos, ya tenemos página con formulario de acceso. Con esta base y ganas puedes llegar a aprovechar muchas posibilidades para tener un área de usuarios en tu sitio web administrado con WordPress.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.neuseed.com/2011/10/como-crear-un-formulario-de-acceso-a-usuarios-en-wordpress/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Como deshabilitar comentarios por defectos en las páginas</title>
		<link>http://www.neuseed.com/2011/07/como-deshabilitar-comentarios-por-defectos-en-las-paginas/</link>
		<comments>http://www.neuseed.com/2011/07/como-deshabilitar-comentarios-por-defectos-en-las-paginas/#comments</comments>
		<pubDate>Mon, 25 Jul 2011 03:05:23 +0000</pubDate>
		<dc:creator>Deryck Oñate Espinel</dc:creator>
				<category><![CDATA[Tutoriales, Trucos y Recursos]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[sql]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.neuseed.com/?p=459</guid>
		<description><![CDATA[A veces los temas aparentemente mas simples se complican y pueden demandar horas y por consecuencia contribuir a demorar los plazos de entrega en un proyecto. Generalmente las páginas en todo website creado con WordPress no tienen activados los comentarios. Para ello los desarrolladores sencillamente eliminan o comentan la siguiente linea de código para que [...]]]></description>
			<content:encoded><![CDATA[<p>A veces los temas aparentemente mas simples se complican y pueden demandar horas y por consecuencia contribuir a demorar los plazos de entrega en un proyecto. Generalmente las páginas en todo website creado con WordPress no tienen activados los comentarios. Para ello los desarrolladores sencillamente eliminan o comentan la siguiente linea de código para que no se muestren comentarios.</p>
<pre class="brush: php; title: ; notranslate">

comments_template( '', true );
</pre>
<p>Esta simple linea de código es la que se encarga de mostrar o en caso de comentarla o eliminarla desactiva los comentarios.</p>
<p>¿Que sucede cuando queremos tener de manera selectiva algunas páginas con comentarios habilitado y otras no? En ese caso WordPress siempre deja habilitada la opción de mostrar los comentarios y si tenemos varias páginas creadas y nos hemos olvidado tendríamos ya que regresar página por página y deshabilitar dicha opción.</p>
<p><span id="more-459"></span></p>
<p>El siguiente código cambiar el comportamiento de WordPress a que por defecto deshabilite los comentarios en las páginas que creamos. De esta forma solo tendríamos que activar los comentarios en la página que necesitamos. Debes insertarlo en <em>functions.php</em></p>
<pre class="brush: php; title: ; notranslate">

function ns_disable_comments( $post_content, $post ) {

    if( $post-&amp;gt;post_type ) {

		switch( $post-&gt;post_type ) {

			case 'page':

			case 'custom-type-post-a':

			case 'custom-type-post-b':

				$post-&gt;comment_status = 'closed';

			break;

		}

	}

    return $post_content;

}

add_filter( 'default_content', 'ns_disable_comments', 10, 2 );
</pre>
<p>Para evitar tener que desactivar una a una las páginas que ya tienen comentarios activados solo tienes que ejecutar esta consulta de SQL en phpMyAdmin o el administrador de base de datos que utilices.</p>
<pre class="brush: sql; title: ; notranslate">

UPDATE &quot;wp_posts&quot;

SET &quot;comment_status&quot; = &quot;closed&quot;

WHERE &quot;post_type&quot; = &quot;page&quot;;
</pre>
<p>Si quieres saber más sobre los filtros de wordpress aquí dejo dos enlaces imprescindibles para ello.</p>
<ul>
<li><a title="Ver Function_Reference/add_filter en WordPress Codex" href="http://codex.wordpress.org/Function_Reference/add_filter">Function Reference/add filter</a></li>
<li><a title="Ver Plugin_API/Filter_Reference en WordPress Codex" href="http://codex.wordpress.org/Plugin_API/Filter_Reference">Plugin API/Filter Reference</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.neuseed.com/2011/07/como-deshabilitar-comentarios-por-defectos-en-las-paginas/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Introducción a las taxonomías personalizadas de WordPress</title>
		<link>http://www.neuseed.com/2011/05/introduccion-a-las-taxonomias-personalizadas-de-wordpress/</link>
		<comments>http://www.neuseed.com/2011/05/introduccion-a-las-taxonomias-personalizadas-de-wordpress/#comments</comments>
		<pubDate>Thu, 05 May 2011 07:00:11 +0000</pubDate>
		<dc:creator>Deryck Oñate Espinel</dc:creator>
				<category><![CDATA[Tutoriales, Trucos y Recursos]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[taxonomías]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.neuseed.com/?p=440</guid>
		<description><![CDATA[Este artículo forma parte de una serie que iremos publicando gradualmente sobre nuevas funcionalidades implementadas o mejoradas con la salida de WordPress 3.0 Anteriormente ya hemos visto como Crear tu primer contenido personalizado con WordPress. En este artículo vamos a expandir las opciones de nuestro pequeño y simple administrador de libros agregando la posibilidad de [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.neuseed.com/2011/05/introduccion-a-las-taxonomias-perzonalizadas-de-wordpress/"><img class="alignnone size-full wp-image-445" title="taxonomias-poster" src="http://www.neuseed.com/wp-content/uploads/2011/05/taxonomias-poster.jpg" alt="Taxonomías Poster" width="610" height="400" /></a></p>
<p><em>Este artículo forma parte de una serie que iremos publicando  gradualmente sobre nuevas funcionalidades implementadas o mejoradas con  la salida de WordPress 3.0</em></p>
<p>Anteriormente ya hemos visto como Crear tu primer contenido personalizado con WordPress. En este artículo vamos a expandir las opciones de nuestro pequeño y simple administrador de libros agregando la posibilidad de asignar categorías personalizadas, llamada taxonomías en WordPress. Vamos a continuar trabajando entonces en el mismo fichero llamado <strong>ns_books.php</strong> que hemos creado para el administrador de libros.<span id="more-440"></span></p>
<h3>Registrando la taxonomía<em> </em></h3>
<p>Lo primero es declarar las variables que utilizaremos para las cadenas de texto que utilizarán las nuevas  taxonomías asignadas a los libros. Para ello insertamos el siguiente código al final del archivo preferiblemente aunque puedes insertarlo donde prefieras, siempre fuera de alguna función para evitar complicaciones.</p>
<pre class="brush: php; title: ; notranslate">
add_action('init', 'books_tax_register');

function books_tax_register() {

	$genre_labels = array(
		'name' =&gt; _x( 'Géneros', 'taxonomy general name' ),
		'singular_name' =&gt; _x( 'Género', 'taxonomy singular name' ),
		'search_items' =&gt;  __( 'Buscar géneros' ),
		'all_items' =&gt; __( 'Todos los géneros' ),
		'parent_item' =&gt; __( 'Género superior' ),
		'parent_item_colon' =&gt; __( 'Género superior:' ),
		'edit_item' =&gt; __( 'Editar género' ),
		'update_item' =&gt; __( 'Actualizar género' ),
		'add_new_item' =&gt; __( 'Crear nuevo género' ),
		'new_item_name' =&gt; __( 'Nuevo nombre de género' ),
		'menu_name' =&gt; __( 'Género' ),
	);

	register_taxonomy( 'genero', array('libros'), array( 'hierarchical' =&gt; true, 'labels' =&gt; $genre_labels, 'query_var' =&gt; true, 'rewrite' =&gt; true ) );
}
</pre>
<p>Ya con este código basta para crear una nueva taxonomía llamada Género. Vamos ir explicando el código para su mejor comprensión.</p>
<p>Con la función <strong>add_action()</strong> estamos ordenando a WordPress que al inicializarse ejecute otra función llamada <strong>books_tax_register</strong> que es la encargada de ejecutar todo el código necesario. Creamos inicialmente un arreglo (<em>Array</em>) llamado <strong>$genre_labels</strong> que contendrá todos los valores de las cadenas de texto que utilizará la página de edición de la taxonomía y en el menú.</p>
<p>La función <strong>register_taxonomy()</strong> es la encargada de registrar la taxonomía. En este caso solo registramos una pero pueden registrarse tantas como sea necesario llamando la función nuevamente con nuevos parámetros.</p>
<p>Los parámetros son: <strong>register_taxonomy($nombre_taxonomía, $tipo_post, $argumentos)</strong></p>
<ul>
<li>$nombre_taxonomía: Es un valor tipo texto con el cual se define el identificador de la taxonomía. En este caso es &#8216;genero&#8217; sin tildes ni signo alguno de puntuación para evitar problemas.</li>
<li><strong>$tipo_post:</strong> Es el tipo de entradas al cual se asignará a esta taxonomía. Puede ser &#8220;post&#8221;, &#8220;page&#8221; entre otros ya sean internos o declarados como en este caso que es &#8220;libros&#8221;. Ha sido declarado como un arreglo para facilitar el poder asignarlo a varios tipos de entradas o contenidos a la vez. En este caso solo es para &#8220;libros&#8221;.</li>
<li><strong>$argumentos: </strong>Es un arreglo que contiene parámetros que definirán el comportamiento de la taxonomía y que comento en detalle a continuación:</li>
</ul>
<ul>
<li><strong>hierachical:</strong> Acepta true or false en caso de ser true acepta jerarquía de categorías permitiendo crear categorías subordinadas a otras. En caso de ser false se comporta como las etiquetas comunes de WordPress.</li>
<li><strong>labels: </strong>Es un arreglo que contiene todas las cadenas de texto que utilizará la taxonomía en las páginas de administración. En este caso utiliza <strong>$genre_labels</strong>, el arreglo que ya he definido previamente.</li>
<li><strong>query_var: </strong>Permite hacerle saber a WordPress si vas a poder filtrar luego artículos utilizando esta taxonomía.</li>
<li><strong>rewrite: </strong>Al activarla con true permite que las taxonomías utilicen urls amigables.  Hay otros parámetros que pueden utilizarse que no son tan comunes pero pueden permitir un mayor nivel de personalización en caso de que sea necesario.</li>
</ul>
<p>Para más información puedes ver la referencia a <a href="http://codex.wordpress.org/Function_Reference/register_taxonomy">register_taxonomy()</a> en el Codex de WordPress.</p>
<p><img class="alignnone size-full wp-image-446" title="taxonomias-dialogo" src="http://www.neuseed.com/wp-content/uploads/2011/05/taxonomias-dialogo.jpg" alt="Taxonomías Editar" width="610" height="400" /></p>
<p>Para asignar las taxonomías solo hay que editar la entrada deseada y marcar los valores que correspondan.</p>
<h3>Como mostrar las taxonomías asignadas a un artículo.</h3>
<p>Asumiendo que ya tenemos algunos artículos creados vamos a visualizar los géneros a los cuales pertenece cada libro en el momento que mostremos alguno.  En este caso para mantenerlo simple seguiremos utilizando el theme &#8220;<strong>Twenty Ten</strong>&#8221; que viene instalado y predeterminado con WordPress.</p>
<p>Abre el fichero <strong>loop-single.php</strong> y busca la siguiente linea de código:</p>
<pre class="brush: xml; title: ; notranslate">
&lt;div class=&quot;entry-utility&quot;&gt;
</pre>
<p>Justo antes de cerrar el <em>&lt;div&gt;</em> inserta el siguiente código que explicaré a continuación:</p>
<pre class="brush: php; title: ; notranslate">
$genre = get_the_term_list( $post-&gt;ID, 'genero', '&lt;strong&gt;Género(s):&lt;/strong&gt; ', ', ', '' );
if ($genre != '')
	echo '
&lt;div&gt;' . $genre . '&lt;/div&gt;
';
</pre>
<p>La función <strong>get_the_term_list()</strong> lee las taxonomías asignadas a un artículo y las muestra con el formato especificado en los parámetros de la misma.</p>
<p>Lo parámetros son:</p>
<ul>
<li><strong>$post_id: </strong>El ID del artículo del cual queremos extraer las taxonomías. Generalmente se utilizar $post-&gt;ID ya que casi siempre esto se hace dentro del &#8220;Loop&#8221; the WordPress.</li>
<li><strong>$taxonomía:</strong> Es una cadena de texto que contiene la taxonomía que queremos mostrar. En este caso es &#8216;genero&#8217; que es la que hemos declarado y con la que hemos estado trabajando.</li>
<li> <strong>$antes:</strong> Es una cadena de texto que aparecerá antes del listado de taxonomías.</li>
<li><strong>$separador: </strong>Es una cadena de texto que utilizará como separador entre valores de la taxonomía.</li>
<li><strong>$después:</strong> Es una cadena de texto que aparecerá al final del listado de taxonomías.</li>
</ul>
<p>Para mas información puedes ver la referencia a <a href="http://codex.wordpress.org/Function_Reference/get_the_term_list ">get_the_term_list()</a> en el Codex de WordPress.</p>
<p>Luego de asignar el resultado de <strong>get_term_list()</strong> a la variable <strong>$genre</strong> he puesto una estructura condicional <a href="http://www.php.net/manual/es/control-structures.if.php">if()</a> que evalúa si <strong>$genre</strong> tiene resultado y en caso de ser así la muestra. Es importantísimo evaluar si contiene datos porque de lo contrario puede generar un error o imprimir código no deseado si el artículo no tiene asignada la taxonomía.</p>
<p><img class="alignnone size-full wp-image-447" title="taxonomia-vista" src="http://www.neuseed.com/wp-content/uploads/2011/05/taxonomia-vista.jpg" alt="Taxonomías Twenty Ten" width="610" height="400" /></p>
<h3>Conclusión</h3>
<p>Espero que este artículo te sea de utilidad para iniciarte con el novedoso sistema de taxonomías de WordPress.  Hay mucha tela por donde cortar y mucho por escribir pero el objetivo de este artículo es introducirte en el uso de las taxonomías sin complicarte demasiado. En el <a href="http://codex.wordpress.org/Main_Page">Codex de WordPress</a> hay muchísima información para para buscarse unos cuantos dolores de cabeza complicando el código para obtener resultados más avanzados.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.neuseed.com/2011/05/introduccion-a-las-taxonomias-personalizadas-de-wordpress/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Creando tu primer contenido perzonalizado con WordPress</title>
		<link>http://www.neuseed.com/2010/11/creando-tu-primer-contenido-perzonalizado-con-wordpress/</link>
		<comments>http://www.neuseed.com/2010/11/creando-tu-primer-contenido-perzonalizado-con-wordpress/#comments</comments>
		<pubDate>Thu, 11 Nov 2010 18:54:31 +0000</pubDate>
		<dc:creator>Deryck Oñate Espinel</dc:creator>
				<category><![CDATA[Tutoriales, Trucos y Recursos]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.neuseed.com/?p=386</guid>
		<description><![CDATA[Este post forma parte de una serie que iremos publicando gradualmente sobre nuevas funcionalidades implementadas o mejoradas con la salida de WordPress 3.0 WordPress es un gestor de contenidos (CMS) pensado originalmente para gestionar blogs. Con el paso del tiempo sus creadores han ido implementando una serie de mejoras que han hecho del mismo uno [...]]]></description>
			<content:encoded><![CDATA[<p><a rel="attachment wp-att-394" href="http://www.neuseed.com/2010/11/creando-tu-primer-contenido-perzonalizado-con-wordpress/custom-post-poster/"><img class="alignnone size-full wp-image-394" title="Custom Posts" src="http://www.neuseed.com/wp-content/uploads/2010/11/custom-post-poster.jpg" alt="Custom Posts" width="610" height="400" /></a></p>
<p><em>Este post forma parte de una serie que iremos publicando gradualmente sobre nuevas funcionalidades implementadas o mejoradas con la salida de WordPress 3.0</em></p>
<p>WordPress es un gestor de contenidos (CMS) pensado originalmente para gestionar blogs. Con el paso del tiempo sus creadores han ido implementando una serie de mejoras que han hecho del mismo uno de los más potentes gestores de contenido en la actualidad.</p>
<p>A continuación mostraré como crear &#8220;custom posts&#8221; o contenidos personalizados, una de las más aclamadas mejoras introducidas a partir de WordPress 3.0. Vamos a crear una librería básica online con el fin de darle un uso práctico al procedimiento a continuación.</p>
<p><span id="more-386"></span></p>
<h3>Comenzando con lo básico</h3>
<p>Crea un nuevo fichero llamado <strong>ns_books.php</strong> en la carpeta del theme de WordPress que estés utilizando.</p>
<p>Abre -o crea en caso de no existir- el fichero <strong>functions.php</strong> en la misma carpeta. Este fichero es el que utiliza WordPress para extender el teme activo con funciones extras que mejoran o modifican su funcionamiento.</p>
<p>En <strong>functions.php</strong> pon la siguiente linea de código al inicio.</p>
<pre class="brush: php; title: ; notranslate">include(TEMPLATEPATH . '/ns_books.php');</pre>
<p>Cierra functions.php, ya no lo necesitaremos más. Al incluir <strong>ns_books.php</strong> podremos insertar todo el código necesario en dicho fichero sin necesidad de modificar nada en <strong>functions.php</strong>. De esta forma mantenemos organizado el codigo y podemos portar facilmente nuestra librearia a otro theme de WordPress con solo copiar <strong>ns_books.php</strong> a la carpeta del mismo e incluirlo nuevamente en el fichero <strong>functions.php</strong> correspondiente al nuevo theme de WordPress.</p>
<h3>Creando la librería</h3>
<p>En ns_books.php insertamos el siguiente código que explicaré a continuación:</p>
<pre class="brush: php; title: ; notranslate">
add_action('init', 'books_register');

function books_register() {

	$labels = array(
		'name' =&gt; _x('Biblioteca', 'post type general name'),
		'singular_name' =&gt; _x('Libro', 'post type singular name'),
		'add_new' =&gt; _x('Nuevo libro', 'library item'),
		'add_new_item' =&gt; __('Crear nuevo libro'),
		'edit_item' =&gt; __('Editar libro'),
		'new_item' =&gt; __('Nuevo libro'),
		'view_item' =&gt; __('Ver libro'),
		'search_items' =&gt; __('Buscar en biblioteca'),
		'not_found' =&gt;  __('No se ha encontrado nada'),
		'not_found_in_trash' =&gt; __('No se ha encontrado nada en la Papelera'),
		'parent_item_colon' =&gt; ''
	);

	$args = array(
		'labels' =&gt; $labels,
		'public' =&gt; true,
		'publicly_queryable' =&gt; true,
		'show_ui' =&gt; true,
		'query_var' =&gt; true,
		'menu_icon' =&gt; get_stylesheet_directory_uri() . '/images/book.png',
		'rewrite' =&gt; true,
		'capability_type' =&gt; 'post',
		'hierarchical' =&gt; false,
		'menu_position' =&gt; null,
		'supports' =&gt; array('title','editor','thumbnail')
	  );

	register_post_type( 'libros' , $args );
}
</pre>
<p>Con este codigo hemos agregado una acción que ejecuta la función <strong>register_post_type()</strong> al cargar el panel de administración de WordPress.</p>
<p><strong>register_post_type()</strong> necesita dos parámetros:</p>
<ul>
<li>Nombre para identificar el tipo de contenido que en nuestro caso será libros</li>
<li>Parámetros para configurar dicho tipo de contenidos.</li>
</ul>
<p>Los parámetros que pasamos están contenidos dentro de <strong>$args</strong>, a continuación algunos:</p>
<ul>
<li><strong>labels:</strong> Contiene una matriz llamada <strong>$labels</strong> con las cadenas de texto que se mostrarán en las secciones de creación, edición y listado de la librería en el panel de administración.</li>
<li><strong>public:</strong> hará que se muestre en el panel de administración.</li>
<li><strong>show_ui:</strong> activa los controles de edición en el panel de administración</li>
<li><strong>menu_icon:</strong> determina el icono que se mostrará en la barra de navegación del panel de administración de WordPress. Si se omite WordPress mostrará uno por defecto.</li>
<li><strong>capability_type:</strong> Indica a WordPress si debe tratar el contenido como un post o una página ( post | page )<br />
<strong>hierachical:</strong> Activa la capacidad de utilizar jerarquía como las páginas de WordPress.</li>
<li><strong>supports:</strong> Especifica que funcionalidad típicas de wordpress incluirá como por ejemplo, titulo, editor e imagen en miniatura -thumbnail-.</li>
<li><strong>rewrite: </strong>Activa el uso de permalinks para este tipo de contenido en este caso sería /libros/</li>
</ul>
<p>Para mas información sobre puedes ver la <a href="http://codex.wordpress.org/Function_Reference/register_post_type">referencia a register_post_type()</a> en el Codex de WordPress <strong><br />
</strong></p>
<p>Estos parámetros son suficientes para habilitar la Librería en el panel de administración de WordPress</p>
<p><a href="http://www.neuseed.com/wp-content/uploads/2010/11/custom-post-overview.jpg" rel="lightbox[386]" title="Librería habilitada"><img class="alignnone size-medium wp-image-395" title="Librería habilitada" src="http://www.neuseed.com/wp-content/uploads/2010/11/custom-post-overview-610x529.jpg" alt="Wordpress Custom Post habilitado" width="610" height="529" /></a></p>
<h3>Creando el fomulario.</h3>
<p>Una vez activada nuestra librería con el formulario de entrada básico debemos agregar los campos específicos para los libros que insertaremos.</p>
<p>Inserta este código que a continuación explicaré:</p>
<pre class="brush: php; title: ; notranslate">
add_action(&quot;admin_init&quot;, &quot;admin_init&quot;);

function admin_init(){
	  add_meta_box(&quot;ns_isbn-meta&quot;, &quot;Datos de editorial&quot;, &quot;isbn_print&quot;, &quot;libros&quot;, &quot;side&quot;, &quot;low&quot;);
	  add_meta_box(&quot;ns_author_meta&quot;, &quot;Datos de autor&quot;, &quot;author_print&quot;, &quot;libros&quot;, &quot;normal&quot;, &quot;low&quot;);
}

function isbn_print(){
	  global $post;
	  $post_obj = get_post_custom($post-&gt;ID);
	  $ns_print_year = $post_obj[&quot;ns_print_year&quot;][0];
	  $ns_isbn = $post_obj[&quot;ns_isbn&quot;][0];
	  ?&gt;
      &lt;p&gt;
	  &lt;label&gt;Año de edición:&lt;/label&gt;&lt;br /&gt;
      &lt;input type=&quot;text&quot; name=&quot;ns_print_year&quot; value=&quot;&lt;?php echo $ns_print_year; ?&gt;&quot; style=&quot;width: 98.5%;&quot;  /&gt;
      &lt;/p&gt;
	  &lt;p&gt;
	  &lt;label&gt;ISBN:&lt;/label&gt;&lt;br /&gt;
	  &lt;input type=&quot;text&quot; name=&quot;ns_isbn&quot; value=&quot;&lt;?php echo $ns_isbn; ?&gt;&quot; style=&quot;width: 98.5%;&quot;  /&gt;
      &lt;/p&gt;
	  &lt;?php
}

function author_print() {
	  global $post;
	  $post_obj = get_post_custom($post-&gt;ID);
	  $ns_author = $post_obj[&quot;ns_author&quot;][0];
	  $ns_website = $post_obj[&quot;ns_website&quot;][0];
	  ?&gt;
	  &lt;p&gt;
      &lt;label&gt;Autor:&lt;/label&gt;&lt;br /&gt;
      &lt;input type=&quot;text&quot; name=&quot;ns_author&quot; value=&quot;&lt;?php echo $ns_author; ?&gt;&quot; style=&quot;width: 98.5%;&quot;  /&gt;
      &lt;/p&gt;
	  &lt;p&gt;
      &lt;label&gt;Website:&lt;/label&gt;&lt;br /&gt;
      &lt;input type=&quot;text&quot; name=&quot;ns_website&quot; value=&quot;&lt;?php echo $ns_website; ?&gt;&quot; style=&quot;width: 98.5%;&quot;  /&gt;
      &lt;/p&gt;
	  &lt;?php
}
</pre>
<p><strong>add_action()</strong> llama a la función <strong>admin_init() </strong>al mostrarse el panel de administración. <strong>admin_init()</strong> registra dos <strong>add_meta_box()</strong> que no son más que grupos de valores, o los llamados meta-fields en WordPress. Cada uno llama a una función correspondiente que se encarga de imprimir en página los campos de texto en el formulario y devolver el valor asignado si ya está creado y se está editando.</p>
<pre class="brush: php; title: ; notranslate">
add_meta_box( $id, $title, $callback, $page, $context, $priority, $callback_args );
</pre>
<p><strong>add_meta_box()</strong> tiene los siguientes parámetros.</p>
<ul>
<li><strong>id:</strong> el atributo &#8220;id&#8221; para el bloque de edición registrado.</li>
<li><strong>title: </strong>Titulo del bloque que será visible para el usuario.</li>
<li><strong>callback: </strong>La función que será llamada al registrar el bloque. Es en esta función donde insertamos los controles de formulario.</li>
<li><strong>page:</strong> El tipo de contenidos donde aparecerá este bloque de edición. En este caso lo asignamos a &#8220;libros&#8221; porque serán controles de datos solo para la Librería.</li>
<li><strong>context:</strong> Determina en que parte de la página de edición será mostrado el bloque. Puede ser (&#8216;normal&#8217;, &#8216;advanced&#8217; o &#8216;side&#8217;).</li>
<li><strong>priority:</strong> Prioridad que tendrá sobre otros bloques.</li>
<li><strong>callback_args:</strong> Argumentos que pueden ser enviados a la función de callback que los recibe en una variable llamada <strong>$post</strong>.</li>
</ul>
<p>Para mas información sobre puedes ver la <a href="http://codex.wordpress.org/Function_Reference/add_meta_box">referencia a add_meta_box()</a> en el Codex de WordPress</p>
<p>La funciones de callback, en este caso <strong>isbn_print()</strong> y <strong>author_print() </strong>se encargan de imprimir los controles de edición específicos y a su vez de recuperar sus valores una vez estamos editando un contenido ya creado. Para ello hay dos lineas de código que son imprescindibles.</p>
<pre class="brush: php; title: ; notranslate">
global $post;
</pre>
<p>Hace que la función obtenga acceso a la variable $post</p>
<pre class="brush: php; title: ; notranslate">
$post_obj = get_post_custom($post-&amp;gt;ID);
</pre>
<p>Obtiene el &#8216;id&#8217; del post que se está mostrando para luego poder sacar los valores de los controles del mismo.</p>
<p>El formulario debe lucir así comenzar a crear una nueva entrada:</p>
<p><a href="http://www.neuseed.com/wp-content/uploads/2010/11/custom-post-new.jpg" rel="lightbox[386]" title="Formulario listo"><img class="alignnone size-medium wp-image-396" title="Formulario listo" src="http://www.neuseed.com/wp-content/uploads/2010/11/custom-post-new-610x528.jpg" alt="Wordpress Custom Post formulario" width="610" height="528" /></a></p>
<h3>Guardando la información</h3>
<p>Ya tenemos creado el formulario, ahora necesitamos poder guardar la información que creamos o editamos con el.</p>
<p>Para ello inserta el siguiente código.</p>
<pre class="brush: php; title: ; notranslate">
add_action('save_post', 'save_details');

function save_details(){
  global $post;

  if ($post-&gt;post_type == 'libros') {
	  update_post_meta($post-&gt;ID, &quot;ns_print_year&quot;, $_POST[&quot;ns_print_year&quot;]);
	  update_post_meta($post-&gt;ID, &quot;ns_isbn&quot;, $_POST[&quot;ns_isbn&quot;]);
	  update_post_meta($post-&gt;ID, &quot;ns_author&quot;, $_POST[&quot;ns_author&quot;]);
	  update_post_meta($post-&gt;ID, &quot;ns_website&quot;, $_POST[&quot;ns_website&quot;]);
  }
}
</pre>
<p>El código se explica por si mismo. Creamos una acción para WordPress que ejecuta la función <strong>save_details()</strong> siempre que se guarda un post. Es importante destacar que dicha función se ejecuta siempre que guardemos un post sea del tipo que sea por lo cual he puesto la siguiente estructura condicional &#8216;if&#8217;.</p>
<pre class="brush: php; title: ; notranslate">
if ($post-&gt;post_type == 'libros') {
	...
}
</pre>
<p>Hace evaluar si el tipo de contenido a guardar es &#8216;libros&#8217; y solo en ese caso inserta los datos. De lo contrario estaríamos insertando datos de los libros en todos los tipos de contenidos que se guardaran en base de datos.</p>
<p>Al editar un contenido ya guardado lucirá de esta manera:</p>
<p><a href="http://www.neuseed.com/wp-content/uploads/2010/11/custom-post-edit.jpg" rel="lightbox[386]" title="Formulario de edición"><img class="alignnone size-medium wp-image-397" title="Formulario de edición" src="http://www.neuseed.com/wp-content/uploads/2010/11/custom-post-edit-610x528.jpg" alt="Wordpress Custom Post Editando en formulario" width="610" height="528" /></a></p>
<h3>Obteniendo la información en el formato que quiero</h3>
<p>WordPress ya incluye por defecto métodos para listar el contenido. En este caso vamos a insertar un código que nos permitirá modificar la forma en que se muestra dicho contenido.</p>
<pre class="brush: php; title: ; notranslate">
add_action(&quot;manage_posts_custom_column&quot;,  &quot;libros_custom_columns&quot;);
add_filter(&quot;manage_edit-libros_columns&quot;, &quot;libros_edit_columns&quot;);

function libros_edit_columns($columns){
  $columns = array(
    &quot;cb&quot; =&gt; &quot;&lt;input type=\&quot;checkbox\&quot; /&gt;&quot;,
    &quot;title&quot; =&gt; &quot;Título&quot;,
    &quot;description&quot; =&gt; &quot;Descripción&quot;,
    &quot;year&quot; =&gt; &quot;Año de edición&quot;,
    &quot;isbn&quot; =&gt; &quot;ISBN&quot;,
	&quot;writer&quot; =&gt; &quot;Autor&quot;
  );

  return $columns;
}
function libros_custom_columns($column){
  global $post;

  switch ($column) {
    case &quot;description&quot;:
      the_excerpt();
      break;
    case &quot;year&quot;:
      $custom = get_post_custom();
      echo $custom[&quot;ns_print_year&quot;][0];
      break;
    case &quot;isbn&quot;:
      $custom = get_post_custom();
      echo $custom[&quot;ns_isbn&quot;][0];
      break;
    case &quot;writer&quot;:
      $custom = get_post_custom();
	  echo $custom[&quot;ns_author&quot;][0];
      break;
  }
}
</pre>
<p>Lo que he hecho es agregar una nueva acción y un nuevo filtro que se ejecutan al listar los libros en el panel de administración llamando a dos funciones.</p>
<p>La primera <strong>libros_edit_columns()</strong> solo define las columnas a mostrar. Las dos primeras van por defecto aunque por supuesto puede ser modificado el titulo a mostrar. El resto de las columnas son campos personalizados de los cuales hablaremos en la siguiente función.</p>
<p>La segunda función <strong>libros_custom_columns()</strong> evalúa que contenido mostrar en cada columna leyendo a su vez el dato correspondiente de la variable $post que al igual que en otras función necesita ser declarado global para poder tener acceso al mismo desde la función.</p>
<p>Aquí tenemos el resultado:</p>
<p><a href="http://www.neuseed.com/wp-content/uploads/2010/11/custom-post-columns.jpg" rel="lightbox[386]" title="Columnas perzonalizadas"><img class="alignnone size-medium wp-image-398" title="Columnas perzonalizadas" src="http://www.neuseed.com/wp-content/uploads/2010/11/custom-post-columns-610x528.jpg" alt="Wordpres Custom Posts mostrando columnas" width="610" height="528" /></a></p>
<h3>Eliminando problemas con los permalinks</h3>
<p>Es bastante común que al crear custom posts una vez ya activados los permalinks en WordPress los mismos de errores al intentar visualizarlos.</p>
<p>Para ello hay dos métodos simples que solucionan el problema.</p>
<p>Primero puedes probar a desactivar y activar nuevamente los permalinks en las opciones del panel de administración de WordPress (Opciones&gt;Enlaces permanentes).</p>
<p>Segundo puedes poner la siguiente linea de código justo después de <strong>register_post_type()</strong></p>
<pre class="brush: php; title: ; notranslate">
add_action('init', 'books_register');
flush_rewrite_rules();
</pre>
<h3>Que sigue</h3>
<p>El contenido creado necesita ser mostrado,  categorizado, mejorado. Es por ello que iré publicando una serie de artículos que abordarán temas como:</p>
<ul>
<li>Agregar nuevas funciones a la Librería como el uso de imágenes.</li>
<li>Crear &#8216;custom_taxonomies&#8217; para la Librería o dicho de otra manera un sistema de categorías y etiquetas personalizado.</li>
<li>Crear widgets para mostrar el contenido y implementar AJAX en el mismo.</li>
</ul>
<p>Espero que este artículo sea útil y ayude a comenzar a crear nuevos tipos de contenidos con está fascinante posibilidad que nos da WordPress.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.neuseed.com/2010/11/creando-tu-primer-contenido-perzonalizado-con-wordpress/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Como migrar WordPress de un servidor a otro</title>
		<link>http://www.neuseed.com/2009/09/como-migrar-wordpress-de-un-servidor-a-otro/</link>
		<comments>http://www.neuseed.com/2009/09/como-migrar-wordpress-de-un-servidor-a-otro/#comments</comments>
		<pubDate>Sun, 13 Sep 2009 22:56:31 +0000</pubDate>
		<dc:creator>Deryck Oñate Espinel</dc:creator>
				<category><![CDATA[Tutoriales, Trucos y Recursos]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.neuseed.com/?p=234</guid>
		<description><![CDATA[WordPress es nuestro CMS de preferencia a la hora de gestionar el contenido de un Website. Si bien fue creado en un inicio para gestionar blogs sus constantes y numerosas versiones han traído jugosas mejoras que hacen bastante sencillo gestionar páginas y la jerarquía de las mismas. Si además tenemos en cuenta que cuenta con [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.wordpress.org"><img class="alignnone size-full wp-image-241" title="Sitio web oficial de WordPress" src="http://www.neuseed.com/wp-content/uploads/2009/09/Wordpress-website.jpg" alt="Sitio web oficial de WordPress" width="610" height="265" /></a></p>
<p>WordPress es nuestro CMS de preferencia a la hora de gestionar el contenido de un Website. Si bien fue creado en un inicio para gestionar blogs sus constantes y numerosas versiones han traído jugosas mejoras que hacen bastante sencillo gestionar páginas y la jerarquía de las mismas. Si además tenemos en cuenta que cuenta con una poderosa y activa comunidad que constanemente aporta nuevos themes y más importante aún, nuevos plugins que han hecho de WordPress un CMS con el cual actualmente se pueden crear y gestionar desde sitios de e-Commerce, Galerías, Blogs hasta Redes sociales.</p>
<p><span id="more-234"></span></p>
<p>Es común que durante el desarrollo de un Theme de WordPress se haga necesario instalar nuevos plugins, poner ficheros de traducción, crear artículos con contenido e imágenes reales para poder tener mejor control de cómo lucirá el contenido con el diseño. Además también se incluyen categorías, páginas, tags, etc. Es muy común también que todo esto se haga sobre un servidor local de pruebas antes de publicar en el servidor accesible por todos a través de Internet.</p>
<p>Llegado el momento de publicar, lo que sea supone que sea “el gran día” se vuelve una pesadilla. De pronto necesitamos crear en el servidor oficial una réplica exacta con todas las categorías, tags, plugins, enlaces internos entre páginas y en el mejor de los casos, si tomamos nota de todo, aun así es una tarea muy tediosa.</p>
<p>Este artículo trae una solución bastante sencilla y que funciona en la mayoría de los casos. <em>La verdad es que siempre funciona, en nuestro caso.</em> Se trata de hacer una réplica de la instalación de WordPress local al servidor oficial.</p>
<h3><strong>Paso 1:</strong></h3>
<p>Lo primero que debes hacer es copiar la carpeta completa de WordPress y subirla por FTP al servidor. Como bien dije, completa, con plugins, themes, todo.</p>
<p><img class="alignnone size-full wp-image-235" title="Ficheros y carpetas de WordPress" src="http://www.neuseed.com/wp-content/uploads/2009/09/Wordpress-Ficheros.jpg" alt="Ficheros y carpetas de WordPress" width="607" height="592" /></p>
<h3><strong>Paso 2: </strong></h3>
<p>Haz entonces una salva de la base de datos utilizando WordPress Backup o sencillamente exportándola con el administrador de MySQL de tu preferencia. A nosotros nos va perfecto con phpMyAdmin. Asegúrate de tener seleccionada todas las tablas y además tener marcada la opción de generar un fichero SQL.</p>
<p><a href="http://www.neuseed.com/wp-content/uploads/2009/09/phpMyAdmin-Exporta.jpg" rel="lightbox[234]" title="Exportando una base de datos con phpMyAdmin"><img class="alignnone size-medium wp-image-236" title="Exportando una base de datos con phpMyAdmin" src="http://www.neuseed.com/wp-content/uploads/2009/09/phpMyAdmin-Exporta-610x468.jpg" alt="Exportando una base de datos con phpMyAdmin" width="610" height="468" /></a></p>
<h3><strong>Paso 3:</strong></h3>
<p>Una vez exportada la base de datos tendrás un fichero de extensión SQL que debes abrir con algún editor que soporte Buscar y Reemplazar para facilitarte el trabajo. Busca todas las instancias de la url local y reemplázalas por  el dominio o url real.</p>
<p><a href="http://www.neuseed.com/wp-content/uploads/2009/09/jEdit-Remplazo.jpg" rel="lightbox[234]" title="Busca y Reemplaza con jEdit"><img class="alignnone size-medium wp-image-237" title="Busca y Reemplaza con jEdit" src="http://www.neuseed.com/wp-content/uploads/2009/09/jEdit-Remplazo-610x414.jpg" alt="Busca y Reemplaza con jEdit" width="610" height="414" /></a></p>
<h3><strong>Paso 4:</strong></h3>
<p>Crea en tu servidor real una base de datos vacía con el mismo nombre, usuario y contraseña que la base de datos local. Si por alguna razón no pueden ser idénticos los datos puedes modificar la configuración en el fichero <strong>wp-config.php</strong> en la raíz de la carpeta de WordPress en tu servidor real.</p>
<h3><strong>Paso 5:</strong></h3>
<p>Utilizando nuevamente el administrador de MySQL de tu preferencia conéctate a la base de datos de servidor oficial e importa el fichero SQL con las direcciones modificadas.</p>
<p><a href="http://www.neuseed.com/wp-content/uploads/2009/09/phpMyAdmin-Importa.jpg" rel="lightbox[234]" title="Importando una base de datos con phpMyAdmin"><img class="alignnone size-medium wp-image-238" title="Importando una base de datos con phpMyAdmin" src="http://www.neuseed.com/wp-content/uploads/2009/09/phpMyAdmin-Importa-610x360.jpg" alt="Importando una base de datos con phpMyAdmin" width="610" height="360" /></a></p>
<h3><strong>Paso 6:</strong></h3>
<p>Abre tu navegador y teclea el dominio del Website. Si todo ha ido bien verás el Website funcionando tal y como estaba en tu servidor local.</p>
<h2><strong>Otras aplicaciones</strong></h2>
<p>Si necesitas rediseñar un Website gestionado por WordPress y vas a trabajar en el mismo de forma local puedes seguir este procedimiento de forma inversa.</p>
<ol>
<li>Copias la carpeta desde el servidor real a tu servidor local.</li>
<li>Exportas la base de datos a un fichero SQL.</li>
<li>Reemplazas las url reales por  las url locales en el fichero SQL.</li>
<li>Importas el fichero SQL en tu base de datos local y ya está.</li>
</ol>
<p>Espero que este artículo te sea de utilidad. Si tienes alguna duda o has tenido alguna problema durante el proceso deja un comentario y veré como puedo ayudarte a solucionar el problema.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.neuseed.com/2009/09/como-migrar-wordpress-de-un-servidor-a-otro/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>

