Cuando desarrollamos páginas web, muchas veces se requieren de frameworks o llamadas  a ficheros externos que implementan las funciones necesarias para que nuestro código funcione debidamente. Generalmente éstos suelen ser javascripts y hojas de estilos. Para ello WordPress integra una función preparada para realizar este proceso mediante wp_enqueue.

En este código de ejemplo se cargan los scripts de Jquery desde las librerías CDN (Content Delivery Network) de Google y de Bootstrap cargamos tanto el script como su hoja CSS.


 <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" ></script>

<script type="text/javascript" src="//netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js"></script>

<link rel="stylesheet" type="text/css" href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css" />

La forma guarra de añadir estos enlaces sería copiando estas lineas de código en alguna parte, como el encabezado o en algún lugar que nos interese ejecutarlos. Podemos enlazarlos desde un servidor remoto como el de Google, pero también podemos ejecutarlos desde un directorio en nuestro servidor.

De todas formas hay una manera mucho más limpia para hacer esto y  es utilizando las funciones propias de WordPress; wp_enqueue_script() y wp_enqueue_style().

Estas funciones se han de crear dentro de el archivo functions.php de nuestro Theme precedido de la ejecución add_action(). Hay que especificar el hook como ‘wp_enqueue_scripts’;  fijaos que sirve para las dos funciones ya sean script o style y como segundo atributo se introduce la función donde se declaran los wp_enqueues.


add_action( 'wp_enqueue_scripts', 'Theme_scripts' );

add_action('wp_enqueue_scripts', 'Theme_styles');

Al final habrá de quedarnos un código parecido al siguiente:


function Theme_scripts() {
if (!is_admin()) {  /* solo hace la carga si no estamos
 en el área de configuración de WordPress,
 o sea, para el usuario de la página*/
   wp_enqueue_script('jquery', get_template_directory_uri().'/js/jquery-1.11.0.js');
   wp_enqueue_script('bootstrap', get_template_directory_uri().'/js/bootstrap.js');
   wp_enqueue_style('bootstrap', get_template_directory_uri().'/css/bootstrap.css');
   }
}
add_action( 'wp_enqueue_scripts', 'Theme_scripts' );

Es muy posible; según la plantilla que estemos utilizando; que ya se carguen algunos scripts alojados en algunas de sus carpetas; usualmente en la carpeta js y css. Por lo que si creamos nuestra propia función es posible que sustituyamos las anteriores, así que lo recomendable es probar nuestros desarrollos sin haberlas añadido previamente. Seguramente las que deberemos definir sean las css, ya que muchas aplicaciones permiten customizar el diseño como JQuery ThemeRoller.

Lo bueno de crear tu propia función es que la versión de un tema anterior pueda quedar desactualizada u obsoleta, por lo que en algunos casos es recomendable revisar su funcionamiento para desarrollos posteriores. Seguramente no se dé el caso, pero es bueno saberlo.

Hay que tener en cuenta que WordPress ya viene con algunos frameworks de serie disponibles en sus dependencias y para terminar copio exactamente la misma lista que publican en su página oficial.


 

 

Scripts incluidos en WordPress por defecto

Script Name Handle
Scriptaculous Root scriptaculous-root
Scriptaculous Builder scriptaculous-builder
Scriptaculous Drag & Drop scriptaculous-dragdrop
Scriptaculous Effects scriptaculous-effects
Scriptaculous Slider scriptaculous-slider
Scriptaculous Sound scriptaculous-sound
Scriptaculous Controls scriptaculous-controls
Scriptaculous scriptaculous
Image Cropper cropper
SWFObject swfobject
SWFUpload swfupload
SWFUpload Degarade swfupload-degrade
SWFUpload Queue swfupload-queue
SWFUpload Handlers swfupload-handlers
jQuery jquery
jQuery Form jquery-form
jQuery Color jquery-color
jQuery UI Core jquery-ui-core
jQuery UI Tabs jquery-ui-tabs
jQuery UI Sortable jquery-ui-sortable
jQuery UI Draggable jquery-ui-draggable
jQuery UI Droppable jquery-ui-droppable
jQuery UI Selectable jquery-ui-selectable
jQuery UI Resizable jquery-ui-resizable
jQuery UI Dialog jquery-ui-dialog
jQuery Interface interface
jQuery Schedule schedule
jQuery Suggest suggest
ThickBox thickbox
jQuery Hotkeys jquery-hotkeys
Simple AJAX Code-Kit sack
QuickTags quicktags
ColorPicker colorpicker
Tiny MCE tiny_mce
Prototype Framework prototype
Autosave autosave
WordPress AJAX Response wp-ajax-response
List Manipulation wp-lists
WP Common common
WP Editor editor
WP Editor Functions editor-functions
AJAX Cat ajaxcat
Admin Categories admin-categories
Admin Tags admin-tags
Admin custom fields admin-custom-fields
Password Strength Meter password-strength-meter
Admin Comments admin-comments
Admin Users admin-users
Admin Forms admin-forms
XFN xfn
Upload upload
PostBox postbox
Slug slug
Post post
Page page
Link link
Comment comment
Admin Gallery admin-gallery
Media Upload media-upload
Admin widgets admin-widgets
Word Count word-count
WP Gears wp-gears
Theme Preview theme-preview