Cambiar la apariencia del texto de código corto dentro del editor

11

¿Es posible cambiar la apariencia de los códigos cortos en el editor o hacer que se distinga más del texto que lo rodea?

Por ejemplo, si el contenido de una publicación es así ...

  

Sitio de referencia sobre Lorem Ipsum, que proporciona información sobre sus orígenes,   así como un generador de Lipsum aleatorio. Sitio de referencia sobre Lorem Ipsum,   dando información sobre sus orígenes, así como un Lipsum aleatorio   generador. [shortcode] asfdasfd [/ shortcode] Sitio de referencia sobre Lorem   Ipsum, dando información sobre sus orígenes, así como un Lipsum aleatorio.   generator.Reference sitio sobre Lorem Ipsum, dando información sobre su   orígenes, así como un generador de Lipsum al azar. Sitio de referencia sobre   Lorem Ipsum, dando información sobre sus orígenes, así como un azar   Generador de Lipsum.

... sería bueno si el código abreviado en el interior está en negrita, por lo que puede verse fácilmente así:

    
pregunta Ivan Topić 27.01.2016 - 00:05

1 respuesta

12

Puedes agregar un complemento personalizado a WordPress y también al editor visual TinyMCE. La siguiente fuente es un ejemplo que funciona de manera simple y agrega una cadena antes y después de todo el código abreviado.

Uso

El shortcode se encontrará a través de expresiones regulares, relevante si lo necesita para diferentes shortcodes y diferentes marcas en este. La secuencia de comandos agrega contenido personalizado al código corto, aquí <b>FB-TEST antes y después de la etiqueta de cierre y el contenido. También puede utilizar el marcado, clases css para crear una visibilidad. Es importante que elimines este contenido en la publicación de guardado, que se activó en el script en PostProcess . Aquí ejecute el script y elimine el contenido personalizado mediante la función restoreShortcodes .

Pero, actualmente es así de simple, tal vez no sea válido para cada requisito. Tal vez debería almacenar el código abreviado en init y restaurar con esta variable almacenada.

Captura de pantalla

Vea la captura de pantalla como ejemplo para comprender el resultado.

Fuente

Lafuentenecesitaestaestructuradedirectoriosparausarla:

--shortcode-replace|--phpfile|--assets|--js|--jsfile

Alprincipio,unpequeñoarchivophp,queincluyelafuentecomocomplementoenelentornodewp.Déjeloeneldirectorioprincipaldelcomplementoshortcode-replace.

<?php#-*-coding:utf-8-*-/***PluginName:ShortcodeReplace*PluginURI:*Description:*Version:0.0.1*TextDomain:*DomainPath:/languages*License:MIT*LicenseURI:*/namespaceFbShortcodeReplace;if(!function_exists('add_action')){exit();}if(!is_admin()){return;}add_action('admin_enqueue_scripts',__NAMESPACE__.'\initialize');functioninitialize($page){if('post.php'===$page){add_filter('mce_external_plugins',__NAMESPACE__.'\add_tinymce_plugin');}}functionadd_tinymce_plugin($plugins){if(!is_array($plugins)){$plugins=array();}$suffix=defined('SCRIPT_DEBUG')&&SCRIPT_DEBUG?'.dev':'';$url=plugins_url('/assets/js/fb_shortcode_replace.js',__FILE__);$plugins=array_merge($plugins,array('fb_shortcode_replace'=>$url));return$plugins;}

Estearchivophpcargaunjavascriptcomocomplementoeneleditorvisual.Elcomplementosecargarásoloenlaspáginasdeadministración,sololaspáginasconlacadenapost.php-veaif('post.php'===$page){.

Lasiguientefuenteeselarchivojavascript,denominadofb_shortcode_replace.js.Déjeloeneldirectorioassets/js/,dentrodeldirectoriodecomplementosdeestecomplemento.

tinymce.PluginManager.add('fb_shortcode_replace',function(editor){varshortcode=/\[.+\]/g;varadditional_before='<b>FB-TEST';varadditional_after='FB-TEST</b>';functionifShortcode(content){returncontent.search(/\[.+\]/)!==-1;}functionreplaceShortcodes(content){returncontent.replace(shortcode,function(match){returnhtml(match);});}functionrestoreShortcodes(content){content=content.replace(additional_before,'');content=content.replace(additional_after,'');returncontent;}functionhtml(data){console.log(data);returnadditional_before+data+additional_after;}editor.on('BeforeSetContent',function(event){//Noshortcodesincontent,return.if(!ifShortcode(event.content)){return;}event.content=replaceShortcodes(event.content);});editor.on('PostProcess',function(event){if(event.get){event.content=restoreShortcodes(event.content);}});});

Útil

  • Loscomentariossobretuspreguntas.
  • enlace

Sugerencia adicional

El complemento Raph convierte los códigos cortos en html para verlos y simplificarlos para entender el resultado. Quizás también sea útil en este contexto.

    
respondido por el bueltge 30.08.2016 - 16:55

Lea otras preguntas en las etiquetas