Portanto, este filtro não está disponível no caso do :)smiley.
Os smilies foram inicializados com:
add_action('init','smilies_init',5);
e dentro da descrição da função smilies_init(), podemos ler o seguinte :
Os plug-ins podem substituir a lista de smileys padrão configurando-o $wpsmiliestrans
como uma matriz, com a chave do código digitado pelo blogueiro e o valor do arquivo de imagem.
$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",);
Portanto, se eu entendi corretamente o comentário principal acima, poderíamos fazer o seguinte:
/**
* :) as the cool emoji
*/
add_action('init',function()use(&$wpsmiliestrans ){if( is_array( $wpsmiliestrans )&& get_option('use_smilies'))
$wpsmiliestrans[':)']= $wpsmiliestrans[':cool:'];},6);
mas isso só funciona para teclas de smiley predefinidas, para $wp_smiliessearchque funcionem.
Mas não gosto dessa abordagem sugerida, modificando a matriz global! Espero que haja outro melhor!
Plug-in de demonstração - 🎅
Eu tentei criar um aplicativo para isso. Não tenho certeza se isso já existe, mas aqui 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);
Graças a Ismael Miguel pelo comentário global , reescrevi os trechos de acordo.
Aqui está o tíquete recém-criado # 35905, de Pieter Goosen , sobre um novo smilies_transfiltro.
Atualização - WordPress 4.7+
O novo filtro estará disponível no WordPress 4.7+, mas o nome smiliesnão estará smilies_trans.
<?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;});
Não precisamos mais mexer com a $wpsmiliestransmatriz global !
Os smilies funcionariam com todas as fontes então?
rob_st
Estranho como os smileys parecem diferentes entre minha guia e o pc. :-) De qualquer forma, jip, também não gosta de modificar os globais, mas isso parece o melhor que você conseguirá com esse acordo. Eu acho que podemos procurar adicionar um filtro adequado no núcleo que possamos usar para filtrar smileys em vez de alterar um global ruim. ;-)
Pieter Goosen
11
bilhete trac # 35905 enviado. Deixa os dedos cruzados que nós temos um filtro apropriado
Pieter Goosen
11
Que tal add_action( 'init', function() use (&$wpsmiliestrans){ $wpsmiliestrans[':)'] = "\xf0\x9f\x98\x8e"; }, 6 );?
Ismael Miguel
11
É uma promessa - na verdade, uso muito a usepalavra-chave nas minhas respostas aqui, mas é um bom lembrete sobre os globais, obrigado novamente (:) <- talvez possamos usar um smiley simétrico para melhor acessibilidade para todos @IsmaelMiguel
Carregue as imagens que você deseja com o mesmo nome no seu servidor (por exemplo, em wp-content / images / smilies) e coloque-o na função do seu tema.php:
Não sabe por que a demonstração do Codex está assumindo 10 argumentos de entrada, em vez de 3? Mas acho que isso é anulado pelos Emoji.
22616 birgire
11
Suponho que seja a prioridade, portanto a ordem parece incorreta. Mudei-lo no Codex, esperando que nós não entendi errado :-)
rob_st
Corrigi sua edição no códice e o código na sua resposta. Os argumentos permitidos deve ser 3, definindo-o como 1irá falhar o seu código como $img, $siteurlserá ignorado e será mesmos ser indefinido no seu filtro :-)
Respostas:
Substituindo o emoji de :) para 😎
Os smilies de conteúdo são convertidos com:
onde esta parte da
convert_smilies()
função é importante:Se espreitarmos
translate_smiley()
, encontramos o seguinte :antes da
smilies_src
aplicação do filtro.Portanto, este filtro não está disponível no caso do
:)
smiley.Os smilies foram inicializados com:
e dentro da descrição da função
smilies_init()
, podemos ler o seguinte :Aqui está a
$wpsmiliestrans
matriz global :ou a tela melhor ordenada:
Portanto, se eu entendi corretamente o comentário principal acima, poderíamos fazer o seguinte:
mas isso só funciona para teclas de smiley predefinidas, para
$wp_smiliessearch
que funcionem.Mas não gosto dessa abordagem sugerida, modificando a matriz global! Espero que haja outro melhor!
Plug-in de demonstração - 🎅
Eu tentei criar um aplicativo para isso. Não tenho certeza se isso já existe, mas aqui está:
Graças a Ismael Miguel pelo comentário global , reescrevi os trechos de acordo.
Aqui está o tíquete recém-criado # 35905, de Pieter Goosen , sobre um novo
smilies_trans
filtro.Atualização - WordPress 4.7+
O novo filtro estará disponível no WordPress 4.7+, mas o nome
smilies
não estarásmilies_trans
.Nossos exemplos acima podem ser escritos como:
ou explicitamente com:
O plugin de demonstração se torna:
Não precisamos mais mexer com a
$wpsmiliestrans
matriz global !fonte
add_action( 'init', function() use (&$wpsmiliestrans){ $wpsmiliestrans[':)'] = "\xf0\x9f\x98\x8e"; }, 6 );
?use
palavra-chave nas minhas respostas aqui, mas é um bom lembrete sobre os globais, obrigado novamente (:) <- talvez possamos usar um smiley simétrico para melhor acessibilidade para todos @IsmaelMiguelDe acordo com o Codex WordPress sobre o uso de smilies :
fonte
3
, definindo-o como1
irá falhar o seu código como$img
,$siteurl
será ignorado e será mesmos ser indefinido no seu filtro :-)