https://code.tutsplus.com/series/fifty-actions-of-wordpress–cms-708
https://code.tutsplus.com/series/50-filters-of-wordpress–cms-694
El ‘Shortcode’ es asociar un texto entre corchetes con una función de php (normalmente implica imprimir algo de HTML). Por ejemplo:
1 2 3 4 5 6 | function google_shortcode(){ return '<input type="button" value="Ir a google" />' ; } add_shortcode( 'google_atajo' , 'google_shortcode' ); |
El ejemplo anterior nos crea un ‘atajo’ que crea un botón que, sencillamente, nos dirige a google. Un ejemplo algo más sofisticado sería el siguiente, que crea un botón que nos envía al validador de webs de w3c:
1 2 3 4 5 6 7 8 | function validator_get_url(){ return get_permalink(); } function validator_shortcode(){ return '<input type="button" value="Valida la página" onclick="location.href=\'http://validator.w3.org/check?uri=' .urlencode(validator_get_url()). '\'"/>' ; } add_shortcode( 'validator' , 'validator_shortcode' ); |
Otros ejemplos:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | add_shortcode( "mi_atajo_guay" , 'trifulcas_crear_atajo' ); function trifulcas_crear_atajo() { ?> <h1>Vivan los atajos</h1> <h3>Todo lo que pongo aquí se pondrá allá donde coloque el atajo</h3> <p>Es una manera muy fácil de colocar contenido en cualquier posición, entrada, páginas, etc...</p> <?php } add_shortcode( 'tabla_multiplicar' , 'trifulcas_tabla' ); function trifulcas_tabla( $params ) { $num = 1; if (isset( $params [ 'numero' ])) { $num = $params [ 'numero' ]; } echo "<table>" ; for ( $i = 1; $i <= 10; $i ++) { ?> <tr><td><?= $i ?></td><td>x</td><td><?= $num ?></td><td>=</td><td><?= $i * $num ?></td></tr> <?php } echo "</table>" ; } add_shortcode( 'lista_productos' , 'trifulcas_lista_productos' ); function trifulcas_lista_productos() { global $wpdb ; $productos = $wpdb ->get_results( "select * from productos" , ARRAY_A); foreach ( $productos as $producto ){ ?> <p><?= $producto [ 'nombre' ]?></p> <?php } } |
Para añadir nuestro código a wordpress tenemos dos opciones:
1 | add_filter( 'gancho' , 'funcion' ) |
Cuando se muestre el contenido del ‘gancho’ se llamará a nuestra función ‘función’. Lo que devuelva nuestra función será el valor del gancho, con lo que tenemos que asegurarnos de que devolvemos un valor. Veamos dos ejemplos:
1 2 3 4 5 | add_filter( 'the_content' , 'cambiar_contenido' ); function cambiar_contenido( $contenido ){ return $contenido . " ¡Mega artículo!" ; } |
El código anterior cambiaría el contenido de las entradas añadiendo el texto ‘¡Mega artículo al final!’.
1 2 3 4 5 | add_filter( 'the_title' , 'cambia_titulo' ); function cambia_titulo( $contenido ){ return "###==>" . $contenido ; } |
El código anterior cambiaría los títulos añadiendo el texto ‘###==>’ al principio.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | add_filter( 'the_content' , 'cambiar_contenido' ); function cambiar_contenido( $contenido ) { if ( strlen ( $contenido )<300){ return $contenido ; } else { $palabras = explode ( " " , $contenido ); $inicio =implode( " " , array_slice ( $palabras ,0,40)); $fin =implode( " " , array_slice ( $palabras ,40)); return $inicio . ' <input type= "button" value= "Ver más" />' . '<span id="mas" style="display: none;">' . $fin . "</span>" ; } } |
El código anterior, si el texto es largo, añade un botón de ‘Ver más’.
1 | add_action( 'gancho' , 'función' ) |
Cuando se ejecute la acción de wordpress ‘gancho’ se llamará a nuestra acción -que puede o no mostrar un contenido. Veamos ejemplos:
1 2 3 4 5 | add_action( 'admin_notices' , 'saludo' ); function saludo(){ echo "ola k ase???" ; } |
El código anterior hace que cuando se muestren las noticias de administración, se escriba el mensaje ‘ola k ase?’.
1 2 3 4 5 6 7 | </pre> add_action( 'wp_head' , 'trifulcas_encolar' ); function trifulcas_encolar(){ wp_enqueue_script( 'trifulcas' , plugin_dir_url( __FILE__ ) . 'trifulcas.js' ); } <pre> |
El código anterior nos pone jquery en la cabecera.
Debemos crear una carpeta dentro de wp-content\plugins, y dentro un arhivo index.php con lo siguiente:
1 2 3 4 5 6 7 8 | /* Plugin Name: Nombre del plugin Plugin URI: http://intelisen.com/plugins Description: Descripción del plugin Author: Intelisen Version: 1 Author URI: http://intelisen.com */ |
Algunos enlaces interesantes:
https://codex.wordpress.org/es:Escribiendo_un_Plugin
https://codex.wordpress.org/Theme_Development
https://yoast.com/wordpress-theme-anatomy/
https://blogging.com/wordpress-cheatsheet/
Para crear un tema hijo sólo tenemos que crear una carpeta y dentro un archivo style.css con lo siguiente:
/* Theme Name: Twenty Seventeen Child Theme URI: http://example.com/twenty-fourteen-child/ Description: Twenty Seventeen Child Theme Author: John Doe Author URI: http://example.com Template: twentyseventeen Version: 1.0.0 Tags: light, dark, two-columns, right-sidebar, responsive-layout, accessibility-ready Text Domain: twenty-seventeen-child */ @import url("../twentyseventeen/style.css");
Otra opción, sin usar @import (más recomendado) es crear el archivo functions.php y poner la siguiente línea:
1 | wp_enqueue_style( 'twentyseventeen' ,get_template_directory_uri(). '/style.css' ); |
o
1 | wp_enqueue_style( 'parent-style' ,get_template_directory_uri(). '/style.css' ); |
Ojo al apartado Template y al import del url.
Tutorial:
https://ayudawp.com/como-crear-un-tema-hijo-en-wordpress/
https://www.webempresa.com/blog/crear-temas-hijo-child-themes-en-wordpress.html
https://docs.presscustomizr.com/article/24-why-and-how-to-create-a-child-theme-with-wordpress
https://docs.woocommerce.com/document/importing-woocommerce-sample-data/
https://www.calfaro.es/woocommerce-pasarela-sermepa-redsys-gratis/
https://woodemia.com/configurar-paypal-en-woocommerce/
Algunos consejos para hacer tu WP más seguro:
https://www.blogpocket.com/2016/07/24/las-10-medidas-de-seguridad-imprescindibles-en-wordpress/
1.- Passwords fuertes
2.- No usar usuario admin, ni prefijos estandard en la bad
3.- Limitar número de logins
4.- Vigilar spam
5.- Cuidado con los plugins
6.- Escanear archivos periodicamente
7.- Firewall o proxy inverso
8.- Copias de seguridad
9.- Actualizaciones constantes
10.- Usar un plugin de seguridad
Ejemplo: iThemes:
https://www.blogpocket.com/2015/10/18/configurar-plugin-wordpress-ithemes-security/