Ejercicio plugins

Crear un plugin que al final de cada entrada nos diga el número de palabras que tiene.

Es decir, tendremos que modificar el contenido (the_content) añadiendo al final el número de palabras

Pasos a realizar:

1.- Crear los archivos de plugin

2.- Conseguir que al final de cada entrada ponga ‘hola’ y comprobar que funciona

3.- Hacer un código que cuente las palabras de un texto en php y añadir ese número al final.

<?php
/**
 * Plugin Name: Contar palabras
 * Description: Cuenta las palabras que tiene una entrada del blog y lo pone al final
 * Version: 1.1
 * Author: Jotapé
 */


// Esta función se encarga de contar las palabras y añadirlas
function contar_palabras($content){
    // usamos str_word_count para contar las palabras: se puede mejorar para no contar html o imágenes o etc...
    $num_palabras=str_word_count($content);
    // Calculo el tiempo de lectura
    $tiempo=round($num_palabras/200,1);
    // Creo el texto a añadir. Como son comillas dobles puedo poner la variable dentro
    $texto="Número de palabras: <b>$num_palabras</b>. Tiempo estimado de lectura: <b>$tiempo minutos</b>";

    // Devuelvo el contenido con el texto anterior. 
    return "<p>$texto</p>$content";
}

// Añado el filtro para modificar el contenido
add_filter("the_content","contar_palabras");

Ejemplo plugin registro entradas

<?php
/**
 * Plugin Name: Registro entradas
 * Plugin URI: https://trifulcas.com
 * Description: Un plugin que registra en un archivo cuando se publica una entrada
 * Version: 1.0
 * Author: Jotapé
 * Author URI: https://trifulcas.com
 * License: GPL2
 */

function registrar($id,$post){
    // Poner el código para escribir en el archivo
    $texto=$post->post_title." | ".$post->post_author.PHP_EOL;
    $archivo = plugin_dir_path( __FILE__ ) . 'registro.txt';
    file_put_contents( $archivo, $texto, FILE_APPEND | LOCK_EX );
}

add_action('publish_post','registrar',10,2);

Ejemplo plugin wp

<?php
/**
 * Plugin Name: Mi Plugin Personalizado
 * Plugin URI: https://tusitio.com
 * Description: Un plugin simple para demostrar cómo crear uno.
 * Version: 1.0
 * Author: Tu Nombre
 * Author URI: https://tusitio.com
 * License: GPL2
 */


function mensaje_final_personalizado($content) {
    
$aforismos = [
    "La vida es aquello que te sucede mientras estás ocupado haciendo otros planes. – John Lennon",
    "El conocimiento es poder. – Francis Bacon",
    "Pienso, luego existo. – René Descartes",
    "La imaginación es más importante que el conocimiento. – Albert Einstein",
    "El hombre está condenado a ser libre. – Jean-Paul Sartre",
    "Solo sé que no sé nada. – Sócrates",
    "No hay camino para la paz, la paz es el camino. – Mahatma Gandhi",
    "El secreto de la felicidad no es hacer siempre lo que se quiere, sino querer siempre lo que se hace. – León Tolstói",
    "La esperanza es el sueño del hombre despierto. – Aristóteles",
    "El que tiene un porqué para vivir puede soportar casi cualquier cómo. – Friedrich Nietzsche"
];
$aforismo=$aforismos[mt_rand(0,9)];

    if (is_single()) {
        $content .= '<p style="color: green;">'.$aforismo.'</p>';
    }
    return $content;
}
add_filter('the_content', 'mensaje_final_personalizado');