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:
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:
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:
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:
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:
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!’.
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.
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’.
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:
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?’.
</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:
/* 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:
wp_enqueue_style('twentyseventeen',get_template_directory_uri().'/style.css');
o
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/