Introducción

Extienden las funcionalidades de wordpress.

Es posible instalar plugins que no estén recogidos en wordpress.org. Plugins → Add new → Upload

Nota: no podemos eliminar plugins que estén activos.

Problema típico al insertar plugins en sistemas linux (Mac, Ubuntu, etc.)

To perform the requested action, WordPress needs to access your web server. Please enter your FTP credentials to proceed. If you do not remember your credentials, you should contact your web host.

Solución:

Añadimos esta línea al fichero wp-config.php ubicado en la raíz:

define('FS_METHOD','direct');

http://plugintable.com/ → En esta página están los plugins más importantes de wordpress.

Formulario de contacto

  • Contact Form 7 → Añade un formulario de contacto. Lo configuraremos contra una cuenta del servidor (loquesea@dominio.com), y no contra una cuenta de gmail o hotmail.
    Shortcodes disponibles para contact form 7.

    En el siguiente código, observa que primero va el tipo de etiqueta, luego el campo al que hacen referencia, luego los class e id's y finalmente el placeholder. Debemos mantener este orden.

    [text direccion class:direccion id:direccion placeholder"nombre"]

    En chrome no se ven las checkboxes de aceptación. Para visualizarlas, utilizaremos el siguiente código:

    input[type="checkbox"] {
        width: 13px !important ;
        -webkit-appearance: checkbox !important;
    }
  • Contact Form 7 Modules: Hidden Fields → Permite añadir campos ocultos dinámicos (pueden cambiar en función del título de la web ,etc. ) al contact form 7
  • Contact Form 7 Dynamic Text Extension → Permite recoger en el formulario, parámetros enviados desde la página anterior. Para ello usaremos estos shortcodes:
    
    [dynamichidden name_que_tendra_el_input "CF7_GET key='name_en_la_url_que_uso_para_recoger_datos'"]
    [dynamictext name_que_tendra_el_input "CF7_GET key='name_en_la_url_que_uso_para_recoger_datos'"]
    
                
  • Contact Form 7 Redirection
  • Contact Form 7 Google Captcha -> Para hacer esta integración no es necesario un plugin. Desde el menú Contacto -> Integración es posible hacerlo.
  • Math Captcha -> Añade un captcha matemático al Contact Form 7 que no va a precisar integración con Google.
  • Flamingo -> Almacena en la base de datos de Wordpress los mails enviados por los usuarios
  • wp-mail-smtp → Permite mandar correos por SMTP, más seguro que usar la función mail de php. Algunos servidores (como HostEurope), no permiten usar la función mail por defecto, por razones de seguridad. A menudo, los servidores gratuitos (como Free Web Hosting Area) no permiten usar el servicio SMTP.
    Habitualmente, utilizaremos los datos de conexión de una cuenta de nuestro server, en lugar de una de hotmail o gmail.
  • Gravity Forms

Newsletters

  • MailPoet Newsletters → Para mandar boletines. Para crear un formulario de inscripción iremos a "Mail Poet -> ajustes -> formularios" .
  • MailChimp for WordPress→ Es el plugin más usado para el envío de newsletter y me dió muchos menos problemas de configuración que mailpoet.

WYSIWYG y contenido

  • Elementor
  • Re add text justify button
  • Custom Post Type UI -> Crea custom post type personalizados
  • MCE Table Buttons → Añade un botón para creación de tablas al editor WYSIWYG
  • TinyMCE Advanced → Editor WYSIWYG vitaminado. Para configurarlo: Settings -> TinyMCE Advanced. Podemos añadir formatos personalizados a la combo de formatos del editor editando el functions.php con este código:
    add_filter('tiny_mce_before_init', 'wpse3882_tiny_mce_before_init');
    function wpse3882_tiny_mce_before_init($settings){
        $style_formats = array(
            array('title' => 'Red text', 'inline' => 'span', 'styles' => array('color' => '#ff0000')),
            array('title' => 'Fondo azul', 'block' => 'h1', 'classes' => 'fondo_azul'),
        );
        $settings['style_formats'] = json_encode( $style_formats );
    
        return $settings;
    }
  • Magic Dates → Count up.
  • Duplicate Post → Permite duplicar páginas y entradas.
  • Tabby Permite convertir páginas independientes en pestañas de una misma página. Pulsa aquí para ver la documentación de Tabby
  • Title Remover → Añade la posibilidad de ocultar el títulos de páginas y posts.

Social

  • Twitter → Añade un botón de seguir mediante un widget.
  • WP twitter feeds -> nos permite visualizar el feed de noticias de Twitter. Para recuperar los datos de acceso, usaremos este enlace.
  • Add to Any → Añade botones de compartir en redes sociales. Si quiero personalizar la apariencia de dichos botones, con CSS es sencillo

Widgets

  1. Q2W3 Fixed Widget → Fija el area de widget para que no desaparezca.
  2. Widget CSS Classes → Permite añadir un class a nuestros widgets para maquetarlos de forma diferente.
  3. Recent Posts Widget Extended → Permite colocar la última entrada y personalizar su apariencia.
  4. Widget Logic → Permite administrar la visualización de plugins (qué plugins se verán en qué páginas).

Multimedia

  • Smart slider: Su versión gratuitia permite colocar un slider a ancho completo y superponer y animar texto.
    1. Cuando configuramos una "Main animation" esta se aplica a todo el slide, pero cuando configuramos además una "Background animation" la imagen de fondo cogerá esta nueva animación y la capa superpuesta se animará de acuerdo a la "Main animation". Esto lo podemos usar para animar bloques de texto.
    2. Cuando queremos la típica estructura de dos imágenes centradas, una con foto y otra con texto, usaremos un layout de dos columnas.
  • Huge IT Video Gallery → Me gusta más el Envira Gallery, pero para poner videos necesitaremos la versión pro, y con este plugin no hace falta. Tiene algunos conflictos de Javascript con el plugin autoptimize.
  • Envira Gallery Lite
  • Foo Gallery→ Aunque es algo lenta que Envira Gallery, no tiene la limitación de subida de 30 mb para su versión gratuita y permite meter cómodamente captions a las fotos.
  • svg support→ permite añadir imágenes a Wordpress en formato SVG.

Calendario

  1. Google Calendar Events → Calendario que se sincorniza con google y que puedo maquetar como yo quiera, no como el iframe de google.
  2. Events Calendar → Podemos definir la página dónde se va a ver el calendario, llendo a Events → Settings → Events URL slug
  3. The Events Calendar Shortcode → Events Calendar nos daba un calendario con eventos que podremos gestionar desde wordpress. Para poner el calendario en un widget, necesitaremos la versión pro o usar este plugin
  4. MyCalendar → Calendario similar al "The Events Calendar" que podremos poner en el area de widgets.
    • Si queremos enlaces de navegación en el correspondiente widget "My Calendar: Mini Calendar", rellenaremos el campo "Navigation Below Calendar", "nav".
    • Si queremos cambiar el día en que comienza el calendario -> Settings (de wordpress, no del plugin) -> general -> week starts on

Mapas

  • API KEY for Google Maps → Forma sencilla de solucionar el problema que se muestra en la consola de Javascript de algunas plantillas: "Google Maps API error: MissingKeyMapError". Habrá que generar una API KEY.
  • Geodirectory. Permite añadir un mapa con chichetas de lugares. Shortcodes:
    Mapa principal[gd_homepage_map width=100% height=300 autozoom=true scrollwheel=false]
    Mapa vinculado a una categoría[gd_listing_map category="134" width=100% height=300 scrollwheel=false zoom=2 ]
    Listado de lugares[gd_listings post_type="gd_place" layout=1 post_number="10" category="134"]

    Para que funcione es necesario:

    • Introducir la API key de Google: Menu Geodirectory -> Design -> Map.
    • Vincular las localizaciones a un listing o categoría. De lo contrario nos dará el error: "Sorry, no records were found. Please adjust your search criteria and try again"
    • Comprar el plugin de multilocations: Location Manager (salvo que todas las localizaciones estén en la misma zona).
    • A veces es necesario quitar muchos extras que añade el shortcode por defecto (últimos lugares, right sidebar, etc.) Para ello podemos ir a: Geodirectory -> Design

    Enlaces rotos

    Cuando al pulsar sobre alguna de las chinchetas obtengamos un error 404, podemos hacer alguna de las siguientes cosas ( o todas):

    1. ajustes -> enlaces permanentes -> volvemos a salvar
    2. geodirectory -> enlaces permanentes -> volvemos a salvar
    3. geodirectory -> GD tools -> Location category counts -> RUN

    Franchise Manager

    Si queremos tener varias direcciones vinculadas a un solo place (franquicias), debemos instalar al addon Franchise Manager. Para usar este plugin:

    1. Geodirectory -> Franchise Settings -> Select post type to enable franchise feature -> Place Settings
    2. Ahora editamos un place:
      1. Place Franchise Settings: yes: Esta será la franquicia padre. Los demás lugares que creemos a partir de este, serán hijos.
      2. Lock franchise fields -> Los campos seleccionados se repetirán para todos los lugares franquiciados hijos.
      3. Para crear lugares franquiciados iremos al frontend de la franquicia padre estando logueados -> Add Franchise -> aparecerán para rellenar los campos que no bloqueamos en el apartado anterior. Debemos seleccionar Add New Franchise, o modificaremos la franquicia padre que hemos seleccionado en lugar de añadir una nueva.
      4. La nueva franquicia no estará activa por defecto, habrá que publicarla.

    Mostrar la localización del lugar en el listado de lugares que comparten el mismo tag: GD > Place settings > Custom Fields tab > Address field > Show in what locations? > select “Listings page”.

    Traducir Franchised places

    1. Creamos un place.
    2. Creamos las franquicias del place.
    3. Para que todo funcione correctamente, el place y sus franquicias deben estar publicadas (no sirve que estén definidas como borrador).
    4. Con el WPML duplicamos el main place(el place que creamos al principio) al idioma deseado, de tal forma que también se duplicarán automáticamente sus franquicias.

    Para añadir/eliminar campos descriptivos personalizados (tamaño, número de bares, precio por metro cuadrado...) a los lugares: Geodirectory -> Place Settings -> Configuro que campos estarán activos y puedo añadir nuevos campos. No olvidar que para que un campo esté activo debemos haberle dado un valor en "Show in what locations?"

    Para eliminar los breadcbrums de geodirectoryadd_filter('geodir_breadcrumb','geodir_breadcrumb_remove',10,2);
    function geodir_breadcrumb_remove($breadcrumb, $separator){
    return '';
    }
    Dehabilitar los links del mapa para que no redirijan a la página del lugar.geodir-bubble_desc h4 a {
       pointer-events: none!important;
    }
    Eliminar iconos socialesremove_action('geodir_detail_page_sidebar', 'geodir_detail_page_sidebar_content_sorting', 1);
    
    add_action('geodir_detail_page_sidebar', 'geodir_detail_page_sidebar_content_sorting_custom', 1);
    
    function geodir_detail_page_sidebar_content_sorting_custom(){
        $arr_detail_page_sidebar_content =
        apply_filters('geodir_detail_page_sidebar_content' , 
                        array(  'geodir_share_this_button',
                                'geodir_detail_page_google_analytics',
                                'geodir_edit_post_link',
                                'geodir_detail_page_review_rating',
                                'geodir_detail_page_more_info'
                            )
                    );
        if(!empty($arr_detail_page_sidebar_content)){
            foreach($arr_detail_page_sidebar_content as $content_function){
                if(function_exists($content_function)){
                    add_action('geodir_detail_page_sidebar' , $content_function);   
                }
            }
        }
    }
        
    [ngg_images gallery_ids="4" display_type="photocrati-nextgen_basic_thumbnails"]
        
    

    Para eliminar los tabs: Geodirectory -> Design -> Details -> Detail Page Tab Settings -> Exclude selected tabs from detail page.

    Para traducir lugares y que se traduzcan: Dentro del lugar o post que quiero traducir, le daremos a duplicate (en el idioma deseado) en lugar de darle al botón de translate.

    Este plugin es incompatible con Multilingual press

    Tener en cuenta que para traducir algunas cadenas, a veces se usan variables. Por ejemplo, si quiero traducir "Place category" la cadena correspondiente es %s category: %l

    Es posible consultar el histórico de tickets abiertos en profile -> support history.

    Reordenar los place tabs
    add_filter('geodir_detail_page_tab_list_extend', 'geodir_detail_page_tab_list_extend') ;
     
    //Este es el orden actual de las pestañas:
    function geodir_detail_page_tab_list_extend($tab_array){
        if ( 'gd_place' == get_post_type() ) {
        //Esta es la séptima pestaña, por defecto es la séptima, pero la hemos movido al primer puesto
        if(isset($tab_array['reviews'])){
             $new_tab_array['reviews'] = $tab_array['reviews'];
             //El siguiente código indica que esta es la pestaña activa por defecto
             $new_tab_array['reviews']['is_active_tab']='1';
             unset($tab_array['reviews']); //Deshabilitamos el viejo tab
        }
        if(isset($tab_array['post_profile'])){
             $new_tab_array['post_profile'] = $tab_array['post_profile'];
             $new_tab_array['post_profile']['is_active_tab']='';
             unset($tab_array['post_profile']);
        }
        if(isset($tab_array['post_info'])){
             $new_tab_array['post_info'] = $tab_array['post_info'];
             unset($tab_array['post_info']);
        }
        if(isset($tab_array['post_images'])){
             $new_tab_array['post_images'] = $tab_array['post_images'];
             unset($tab_array['post_images']);
        }
        if(isset($tab_array['post_video'])){
             $new_tab_array['post_video'] = $tab_array['post_video'];
             unset($tab_array['post_video']);
        }
        if(isset($tab_array['special_offers'])){
             $new_tab_array['special_offers'] = $tab_array['special_offers'];
             unset($tab_array['special_offers']);
        }
        if(isset($tab_array['post_map'])){
             $new_tab_array['post_map'] = $tab_array['post_map'];
             unset($tab_array['post_map']);
         }
        if(isset($tab_array['related_listing'])){
            $new_tab_array['related_listing'] = $tab_array['related_listing'];
            unset($tab_array['related_listing']);
        }
        foreach($tab_array as $key=>$tab){
            $new_tab_array[$key]=$tab;
        }
     
        return $new_tab_array ; } 
        else { return $tab_array ;  }
    }

Optimización

  • Media Alt Renamer → Facilita la modificación del texto alternativo de las imágenes desde la biblioteca de medios.
  • WPSweep → Limpia y optimiza la base de datos.
  • My Custom Functions
  • Yoast SEO → Para hacer el SEO de nuestra web. Si falla el sitemap.xml que genera este plugin, el siguiente suele funcionar (a mí me pasó). Conviene activar las opciónes avanzadas de configuración del plugin (SEO -> características -> Páginas de ajustes avanzados).
  • Google XML Sitemaps
  • Complete Analytics Optimization Suite (CAOS) → Activa Google analitics de forma automática e independiente de la plantilla. Tiene la gran ventaja frente a otros plugins de que la librería de google Analytycs la caga localmente, agilizando la carga de la página y mejorando nuestro page speed. No olvidar copiar y pegar el tracking code en la configuración del plugin.
  • Broken Link Checker → Comprueba la existencia de enlaces rotos. Una vez utilizado es aconsejable desactivarlo hasta que lo queramos volver a usar porque consume recursos.
  • Really Simple SSL → Redirecciona todas las peticiones a https.

Optimización de la velocidad (opción gratutita)

  • Autoptimize → Minimiza el html, el js y el css sin dar problemas, al contrario de lo que me pasaba con las opciones de minificación de W3 total Cache. Me dió mucho mejores resultados y me resultó mucho más fácil de configurar que el Hummingbird.
  • Fastest Cache Utilizaremos este plugin para la gestión de la caché y la compresión gzip de la página, mientras que el minificado lo dejaremos en manos del autoptimize
  • re-smush it → Comprime las fotografías de la web.
    De todas formas, para obtener el mejor grado de optimización, será necesario usar un servicio web como https://tinyjpg.com/

Optimización premium de la velocidad ( opción de pago, merece la pena pagar)

  • Fastest Cache Este plugin tiene una versión premium vitalicia para un solo sitio que cuesta 50€. Tiene minificado de HTML, CSS y JS, Lazy load, carga asíncrona que no da errores, cache, compresión gzip, compresión de las imágenes, cdn... Si compras la versión premium de este plugin ya no sería necesario que usases el autoptimize.
  • Seguridad

    En general, no es necesario instalar un plugin para mejorar la seguridad de wordpress. Basta actualizar con frecuencia, tener utilizar algo de sentido común y hacer algunas modificaciones en los ficheros .htaccess y wp-config.php

    • El nombre del usuario administrador no debe ser "admin", que es el valor por defecto y creado en las instalaciones automáticas.
    • La contraseña de los usuarios debe ser segura.
    • Debemos eliminar los plugins que no usemos (no sólo desactivarlos), puesto que están subidos al ftp y pueden contener vulnerabilidades.
    • Instalar plugins fiables (en principio, que se actualicen con frecuencia, que tengan buena valoración proveniente de varios usuarios, etc.).
    • El prefijo de las bases de datos debe ser diferente de wp_, que es el prefijo estandar de todas tablas de wordpress del mundo, y esto permite al hacker tener una información valiosa sobre nuestra web.
    • Modificaciones en el .htaccess ubicado en la raíz de wordpress
      Mostrar el texto "vota" en la sección de las estrellas del rating 
      Habrá que ir a GD > Design > Scripts > Custom Style CSS y pegar allí el código.comment-respond .gd_rating:before { content:"Vota!"; } .comment-respond .gd_rating { overflow: visible!important; }
    • Permitir el acceso al admin de wordpress, pero sólo desde cierta IP (colocar un fichero .htaccess con este código en la raíz de la carpeta wp-admin):
      # Bloqueamos acceso al directorio includes
      <IfModule mod_rewrite.c>
      RewriteEngine On
      RewriteBase /
      RewriteRule ^wp-admin/includes/ - [F,L]
      RewriteRule !^wp-includes/ - [S=3]
      RewriteRule ^wp-includes/[^/]+\.php$ - [F,L]
      RewriteRule ^wp-includes/js/tinymce/langs/.+\.php - [F,L]
      RewriteRule ^wp-includes/theme-compat/ - [F,L]
      </IfModule>
      
      # Bloqueamos acceso a WP-CONFIG
      <Files wp-config.php>
          Order Allow,Deny
          Deny from all
      </Files>
      
      #Sólo nuestra IP en el login
      <Files wp-login.php>
          Order Allow,Deny
          Deny from all
          Allow from 127.0.0.1
      </Files>
      
      # Protegemos nuestros HTACCESS
      <Files ~ “^.*\.([Hh][Tt][Aa])”>
          Order allow,deny
          Deny from all
          Satisfy all
      </Files>
      
      
      # Cerramos acceso a directorios de themes y plugins
      RewriteCond %{REQUEST_URI} !^/wp-content/plugins/file/to/exclude\.php
      RewriteCond %{REQUEST_URI} !^/wp-content/plugins/directory/to/exclude/
      RewriteRule wp-content/plugins/(.*\.php)$ - [R=404,L]
      RewriteCond %{REQUEST_URI} !^/wp-content/themes/file/to/exclude\.php
      RewriteCond %{REQUEST_URI} !^/wp-content/themes/directory/to/exclude/
      RewriteRule wp-content/themes/(.*\.php)$ - [R=404,L]
      
      # No permitir ver los directorios
      Options -Indexes
      
      # Bloquear a los listillos que intentan descubrir vuestro author
      RewriteCond %{QUERY_STRING} ^author=([0-9]*)
      RewriteRule .* http://example.com/? [L,R=302]
      
      
      # Deshabilitar el fichero xmlrpc.php. Ese fichero nos permite publicar remotamente a través de Microsoft Word, Textmate, Thunderbird, smartphones, entre otros clientes. También se encarga de pingbacks (enlaces de otros blogs a nuestros artículos) y enviar los trackbacks (enlaces de nuestro blog hacia artículos de otros blogs). Actualmente no se conocen vulnerabilidades de este fichero, pero hay muchos servicios que siguen atacando wordpress a través de él, lo cual puede derivar en una ralentización de la web. En principio, lo podemos borrar sin problemas ni remordimientos, o deshabilitar desde el .htaccess.
      <Files xmlrpc.php>
       order allow,deny 
       deny from all 
      </Files>
    • Modificaciones en el fichero wp-config.php ubicado en la raíz.
      AuthUserFile /dev/null
      AuthGroupFile /dev/null
      AuthName "Access Control"
      AuthType Basic
      order deny,allow
      Deny from all
      allow from 127.0.0.1
      allow from 127.0.0.2
      ...
      

    Plugins de seguridad

    • Wordfence Security -> Plugin que cuenta de una opción genérica de seguridad que debería bastar para la mayoría de las webs.
    • Sucuri Security - Auditing, Malware Scanner and Security Hardening

    Backups y migración

    Dependiendo de lo que buscamos y sobre todo de nuestros bolsillos, existen diferentes plugins para migrar, pero para mí, el gran ganador es Updraft plus. Este plugin es de pago si lo que queremos es migrar nuestro wordpress de una url a otra

    • Updraft Plus. Para hacer una migración:
      1. instalamos un wordpress limpio en la ruta de destino
      2. instalamos la versión plus (de pago) de updraft en el wordpress origen y en el wordpress destino
      3. me logeo en ambos wordpress con mi usuario updraft plus desde mi página premium/extensions
      4. activo el plugin de migración en ambos wordpress
      5. En la página de destino: Menú Ajustes -> Respaldos Updraft Plus -> Botón Clonar/Migrar -> Create Key -> copia el codigo en la pagina destino lo pego en la de origen
      6. Ahora ya puedo enviar una backup desde la de origen a la de destino

    Si no podemos comprar el updraft plus, existen otras opciones más gratuitas / económicas.

    Una copia de seguridad puede fallar por diversos motivos. El más frecuente es que el servidor desde el que queremos sacar la copia o el servidor al que queremos migrar la copia tengan una configuración que nos imposibilite materializarla. Esto debería ser un problema del proveedor de hosting, aunque a menudo es el ténico de software el que termina arreglándolo. Por eso cito varios plugins para copiar bases de datos. Podemos ir utilizando dichos plugins en el orden que aquí propongo (el backup buddy que es de pago podemos obviarlo) en busca de un método que nos permita hacer la copia.

    • Duplicator → Para hacer copias de seguridad de la web. Me dio problemas para sacar una copia de seguridad de una página echa con las plantillas divi de elegant themes. Según leí en foros, la verisón de pago no daba estos problemas, pero no la proble. El plugin backup buddy no me dió estos problemas, pero ha habido situaciones en las que el backup buddy no me iba y el duplicator sí. Ver video con explicación de Duplicator
    • Backup buddy → Plugin de pago para hacer copias de seguridad, al contrario que el Updraft Plus, este pagas una vez y se acabó (no una vez al año).

      Razones por las que puede fallar:

      • Para utilizarlo habrá que tener unos valores altos de max_execution_time y memory_limit en el php.ini. De lo contrario no queda claro porqué la copia de seguridad no se puede hacer. En cdmon, ampliar estos valores de forma temporal es muy cómodo.
      • Puede hacer conflicto con el ithemes security. Si la copia falla, una opción es deshabilitar el ithemes security para ver si así funciona.

      Una vez instalado este plugin, hay dos menús interesantes a tener en cuenta

      • Server tools -> Server: Aquí podemos comprobar-corregir la configuración del sevidor para que sea la más apropiada posible.
      • Server tools -> Site Size Maps: Aquí podemos ver qué carpetas son la que ocupan más del servidor. Esto es útil porque si el plugin se encuentra un fichero muy grande a la hora de sacar la copia de seguridad, puede fallar (sobre todo si estamos en un alojamiento compartido y no podemos cambiar el time out). Por ello, debemos asegurarnos de que no haya ficheros muy largos en el server a la hora de hacer la copia.
    • All-in-One WP Migration → Plugin para hacer copias de seguridad. Es algo más largo de usar que el backup buddy. Para la restauración, primero hay que instalar un wordpress limpio, luego instalar el plugin, y a partir de ahí, hacer la restauración. Permite hacer un backup de un multisite, si bien, no va perfecto.
    • WP Migrate DB o Migración de manual. Consiste descargar los ficheros por FTP y exportar la base de datos. WP Migrate permite exportar la base de datos reemplazando las cadenas de texto que hacen referencia a la ruta de Wordpress por los valores de la ruta de destino.

      Para obtener las rutas que debo usar durante la exportación:

      1. Primera ruta. Es la ruta para llegar a la carpeta de destino, sustituyendo el protocolo y el subdominio www (si lo tuviese) por //
      2. Segunda ruta.
        
        /*Deshabilitamos la posibilidad de editar el código fuente
        de Wordpress desde el panel de administración de Wordpress*/
        define('DISALLOW_FILE_EDIT', true);
        /*No queremos mostrar información de errores a ningún hacker*/
        define('WP_DEBUG', false);
        /*En caso de que el servidor tenga certificado de seguridad,
        nos interesa utilizarlo para el login*/
        define('FORCE_SSL_LOGIN', true);
        define('FORCE_SSL_ADMIN', true);

    Este proceso lo podríamos hacer nosotros manuealmente con el "buscar reemplazar" de nuestro editor de código. Una vez subidos los ficheros al nuevo servidor e importado la base de datos, habrá que modificar el fichero wp-config.php para configurar la base de datos:

    Ejecuto el siguiente comando php desde un fichero ubicado en la ruta de destino.
    <?php 
        echo __DIR__;
    ?>
    
    Ver tutorial
  • Media Tools: podemos usar este plugin cuando importamos contenido a wordpress. En estos casos, las urls de las imágenes suelen ser relativas al lugar desde el que hemos hecho la importación. Este plugin se encarga de importar las imágenes a nuestro site.
  • Set All First Images As Featured
  • Search and Replace: permite reemplazar cadenas en la base de datos. Muy útil cuando tras una migración algo no funciona.
  • Otros

    • If Menu → permite mostrar menús en Wordpress sólo cuando se cumplen ciertas condiciones.
    • Login Logout Menu → Permite añadir un link para desloguearnos de wordpress.
    • Adminimizer → permite definir los menús del panel de administración que se verán en función del rol del usuario logueado.
    • ACF (Advanced Custom Field) → Permite añadir campos de texto personalizados a nuestra publicaciones para mostrarlos dónde nos interese. Documentación.
    • CSH Login → Login modal pop up. Muestra un pop up para poder acceder a Wordpress.
    • AWESOME Team → Permite mostrar los miembros de un equipo de forma elegante.
    • Menu Items Visibility Control -> Nos permite filtrar que menus se van a ver en función del perfil del usuario, etc.
    • Yuzo - Related Posts → Para que funcione, tras haberlo instalado, al menos habrá que indicar en el campo "Related to", el valor "Category"
    • Super RSS Reader → Permite cargar las últimas entradas publicadas en otro blog
    • Loco Translate → Permite traducir cadenas de texto de Wordpress y poner lo que nos plazca. Si la plantilla con la que estamos trabajando es una plantilla hija y queremos modificar sus cadenas, probablemente, tendremos que buscar la cadena a traducir en la plantilla padre: Loco Translate -> Genesis.
    • Akismet → Es un filtro de Spam para los comentarios.
    • disable comments → Deshabilita comentarios.
    • Adminer → Te permite acceder a la base de datos desde wordpress.
    • Go Portfolio
    • Waving Portfolio → Este plugin para portfolio abra la información vinculada a una foto en un pop up en lugar de en una nueva url y es gratuito.
    • Cookie Notice by dFactory.
    • Easy Digital Downloads

      Añadiremos elementos descargables desde el menú downloads. Luego, insertaremos los productos descargables dónde nos interese utilizando un shortcode.

      Si en pasarela de pago escogemos "pago de prueba", podremos hacer pruebas de como funciona la venta.

    • Header and Footer scripts: permite añadir un script a todas las páginas del site simlutanamente.
    • Per page add to: permite añadir scripts a nivel de página.
    • Affiliate WP: Permite establecer afiliados (personas que a cambio de interceder para que te lleves una venta se llevan una comisión).
      1. Establecemos a qué plataforma queremos vincular el plugin de afiliados (Restrict Content PRO, Woocommerce, Easy Digital Downloads, Contact Form 7, etc.): Afiliados -> Ajustes -> Integraciones
      2. Creamos un nuevo afiliado: Afiliados -> Afiliados -> Añadir nuevo ->
      3. Al crear un afiliado se crea una página llamada Affiliate Area.
      4. En esta página hay una pestaña: affiliate url. En esta pestaña hay una url que es la que debe usar el cliente para que la venta contabilice para el afiliado. Aquí podemos introducir cualquier url de la página para transformarla en una url de afiliados.
      5. Todo lo que haga en la web la persona que llega a ella a través de una url de afiliados queda trackeado en una cookie, aunque en la url desaparece el parámetro de afiliados.
      6. En Afiliados -> ajustes, configuramos.
      7. En Afiliados -> ajustes -> varios podemos establecer que cuando la persona llegue a la página de afiliados sin estar registrada aparezca un formulario para poder darse de alta como afiliada.
    icono de mandar un mailPreguntame lo que quieras!
    Pablo Monteserín
    contacta conmigoPablo Monteserín

    El servicio de resolución de dudas técnicas es sólo para los usuarios premium. Si tienes cualquier otra duda, usa el formulario de contacto. ¡Gracias!