Por lo tanto, este filtro no está disponible en el caso de la :)carita sonriente.
Tenemos las caritas inicializadas con:
add_action('init','smilies_init',5);
y dentro de la descripción de la función smilies_init()podemos leer lo siguiente :
Los complementos pueden anular la lista de emoticones predeterminada configurando $wpsmiliestrans
una matriz, con la clave del código que escribe el blogger y el valor del archivo de imagen.
$wpsmiliestrans = array(':mrgreen:'=>'mrgreen.png',':neutral:'=>"\xf0\x9f\x98\x90",':twisted:'=>"\xf0\x9f\x98\x88",':arrow:'=>"\xe2\x9e\xa1",':shock:'=>"\xf0\x9f\x98\xaf",':smile:'=>"\xf0\x9f\x99\x82",':???:'=>"\xf0\x9f\x98\x95",':cool:'=>"\xf0\x9f\x98\x8e",':evil:'=>"\xf0\x9f\x91\xbf",':grin:'=>"\xf0\x9f\x98\x80",':idea:'=>"\xf0\x9f\x92\xa1",':oops:'=>"\xf0\x9f\x98\xb3",':razz:'=>"\xf0\x9f\x98\x9b",':roll:'=>'rolleyes.png',':wink:'=>"\xf0\x9f\x98\x89",':cry:'=>"\xf0\x9f\x98\xa5",':eek:'=>"\xf0\x9f\x98\xae",':lol:'=>"\xf0\x9f\x98\x86",':mad:'=>"\xf0\x9f\x98\xa1",':sad:'=>"\xf0\x9f\x99\x81",'8-)'=>"\xf0\x9f\x98\x8e",'8-O'=>"\xf0\x9f\x98\xaf",':-('=>"\xf0\x9f\x99\x81",':-)'=>"\xf0\x9f\x99\x82",':-?'=>"\xf0\x9f\x98\x95",':-D'=>"\xf0\x9f\x98\x80",':-P'=>"\xf0\x9f\x98\x9b",':-o'=>"\xf0\x9f\x98\xae",':-x'=>"\xf0\x9f\x98\xa1",':-|'=>"\xf0\x9f\x98\x90",';-)'=>"\xf0\x9f\x98\x89",// This one transformation breaks regular text with frequency.// '8)' => "\xf0\x9f\x98\x8e",'8O'=>"\xf0\x9f\x98\xaf",':('=>"\xf0\x9f\x99\x81",':)'=>"\xf0\x9f\x99\x82",':?'=>"\xf0\x9f\x98\x95",':D'=>"\xf0\x9f\x98\x80",':P'=>"\xf0\x9f\x98\x9b",':o'=>"\xf0\x9f\x98\xae",':x'=>"\xf0\x9f\x98\xa1",':|'=>"\xf0\x9f\x98\x90",';)'=>"\xf0\x9f\x98\x89",':!:'=>"\xe2\x9d\x97",':?:'=>"\xe2\x9d\x93",);
Entonces, si entiendo correctamente el comentario central anterior, entonces podríamos hacer lo siguiente:
/**
* :) as the cool emoji
*/
add_action('init',function()use(&$wpsmiliestrans ){if( is_array( $wpsmiliestrans )&& get_option('use_smilies'))
$wpsmiliestrans[':)']= $wpsmiliestrans[':cool:'];},6);
pero esto solo funciona para las teclas sonrientes predefinidas, para $wp_smiliessearchque funcionen.
Pero no me gusta este enfoque sugerido, ¡modificar la matriz global! ¡Ojalá haya otro mejor!
Complemento de demostración - 🎅
Traté de encontrar una aplicación para esto. No estoy seguro si esto ya existe, pero aquí está:
<?php/**
* Plugin Name: Santa's Smile In December
* Description: Change the emoji of :) to the Santa Claus emoji, but only in December
* Plugin URI: https://wordpress.stackexchange.com/a/218496/26350
*/
add_action('init',function()use(&$wpsmiliestrans ){// :) as Santa Clausif(
is_array( $wpsmiliestrans )&& get_option('use_smilies')&&12== current_time('n'))
$wpsmiliestrans[':)']="\xF0\x9F\x8E\x85";},6);
Gracias a Ismael Miguel por el comentario global , reescribí los fragmentos en consecuencia.
Aquí está el ticket recién creado # 35905 por Pieter Goosen , con respecto a un nuevo smilies_transfiltro.
Actualización - WordPress 4.7+
El nuevo filtro se dispone en WordPress 4.7+, pero de nombre será smiliesno smilies_trans.
Nuestros ejemplos anteriores se pueden escribir como:
<?php/**
* Plugin Name: Santa's Smile In December
* Description: Change the emoji of :) to the Santa Claus emoji, but only in December
* Plugin URI: https://wordpress.stackexchange.com/a/218496/26350
*/
add_filter('smilies',function( $smilies ){// :) as Santa Clausif( get_option('use_smilies')&&12== current_time('n'))
$smilies[':)']="\xF0\x9F\x8E\x85";return $smilies;});
¡Ya no necesitamos perder el tiempo con la $wpsmiliestransmatriz global !
¿Funcionarían los emoticones con cada fuente entonces?
rob_st
Es extraño lo diferentes que se ven los emoticones entre mi pestaña y mi PC. :-) De todos modos, jip, tampoco me gusta modificar con globals, pero esto parece lo mejor que vas a obtener de este trato. Creo que podríamos considerar agregar un filtro adecuado en el núcleo que podamos usar para filtrar emoticones en lugar de alterar un global de mierda. ;-)
Pieter Goosen
1
boleto de trác # 35905 enviado. Vamos a cruzar los dedos para obtener un filtro adecuado
Pieter Goosen
1
¿Qué tal add_action( 'init', function() use (&$wpsmiliestrans){ $wpsmiliestrans[':)'] = "\xf0\x9f\x98\x8e"; }, 6 );?
Ismael Miguel
1
Es una promesa: en realidad uso mucho la usepalabra clave en mis respuestas aquí, pero es un buen recordatorio con respecto a los globales, gracias de nuevo (:) <- tal vez podríamos usar una carita simétrica para una mejor accesibilidad para todos @IsmaelMiguel
Sube las imágenes que quieras con el mismo nombre a tu servidor (por ejemplo, en wp-content / images / smilies) y pon esto en la función de tu tema.php:
¿No está seguro de por qué la demostración del Codex está asumiendo 10 argumentos de entrada, en lugar de 3? Pero creo que esto es anulado por los Emoji.
Birgire
1
Supongo que está destinado a ser la prioridad, por lo que el orden parece incorrecto. Lo cambié en el Codex, esperando no equivocarnos :-)
rob_st
He corregido su edición en el códice y corregido su código en su respuesta. Los argumentos permitidos deberían ser 3: establecerlo 1fallará su código como $img, $siteurlserá ignorado y por lo tanto no estará definido en su filtro :-)
Respuestas:
Anulando el emoji de :) a 😎
Las caritas de contenido se convierten con:
donde esta parte de la
convert_smilies()
función es importante:Si echamos un vistazo
translate_smiley()
, encontramos lo siguiente :antes de
smilies_src
aplicar el filtro.Por lo tanto, este filtro no está disponible en el caso de la
:)
carita sonriente.Tenemos las caritas inicializadas con:
y dentro de la descripción de la función
smilies_init()
podemos leer lo siguiente :Aquí está la
$wpsmiliestrans
matriz global :o la pantalla ksorted más bonita:
Entonces, si entiendo correctamente el comentario central anterior, entonces podríamos hacer lo siguiente:
pero esto solo funciona para las teclas sonrientes predefinidas, para
$wp_smiliessearch
que funcionen.Pero no me gusta este enfoque sugerido, ¡modificar la matriz global! ¡Ojalá haya otro mejor!
Complemento de demostración - 🎅
Traté de encontrar una aplicación para esto. No estoy seguro si esto ya existe, pero aquí está:
Gracias a Ismael Miguel por el comentario global , reescribí los fragmentos en consecuencia.
Aquí está el ticket recién creado # 35905 por Pieter Goosen , con respecto a un nuevo
smilies_trans
filtro.Actualización - WordPress 4.7+
El nuevo filtro se dispone en WordPress 4.7+, pero de nombre será
smilies
nosmilies_trans
.Nuestros ejemplos anteriores se pueden escribir como:
o explícitamente con:
El complemento de demostración se convierte en:
¡Ya no necesitamos perder el tiempo con la
$wpsmiliestrans
matriz global !fuente
add_action( 'init', function() use (&$wpsmiliestrans){ $wpsmiliestrans[':)'] = "\xf0\x9f\x98\x8e"; }, 6 );
?use
palabra clave en mis respuestas aquí, pero es un buen recordatorio con respecto a los globales, gracias de nuevo (:) <- tal vez podríamos usar una carita simétrica para una mejor accesibilidad para todos @IsmaelMiguelSegún el Codex de WordPress sobre el uso de emoticones :
fuente
3
: establecerlo1
fallará su código como$img
,$siteurl
será ignorado y por lo tanto no estará definido en su filtro :-)