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/