Pownce: No public Pownce messages.

Agrega tu enlace

Condicionar el uso de plugins en WP Publicada el Domingo 17 de Junio de 2007 a las 11:03 pm por Infected-FX

Condicionar el uso de plugins

Algo que resulta bastante útil a la hora de crear themes para WordPress es condicionar el uso ó funciones de los plugins, a que me refiero con esto, es muy simple... cuando creamos un theme muchas veces es posible que "requiera" de algún plugin para su funcionamiento ó para mil cosas ya que como muchos sabemos hay infinidad de posibilidades para extender su wordpress usándolos.

Ahora bien, lo que sucede a menudo es que ponemos el código del plugin como nos indica el autor ó como viene en el "readme", pero no todos los usuarios ó personas que descarguen el theme tendrán exactamente ese plugin instalado, que es para lo que utilizaremos una condicional en estos casos.

La sintaxis es muy sencilla funciona de la siguiente manera.

PHP:
  1. <?php
  2.     if(function_exists('nombre_de_la_funcion'))
  3.         nombre_de_la_funcion();
  4. ?>

 

Esto es que cuando descargamos un plugin en la mayoría de los casos nos pide que insertemos un código en nuestro theme que vendría siendo algo como: nombre_de_la_funcion();, justamente eso es lo que utilizaremos para nuestra condicional, hagamos un ejemplo con algo que usamos muy comunmente que son los ads.

Para este ejemplo utilizaremos MightyAdsense, según vemos en la documentación para poder mostrar un bloque de adsense utilizando este plugin es necesaria la siguiente sintaxis.

PHP:
  1. <?php mightyadsense4template(Set_Number); ?>

 

Pero que sucede si no todos utilizan ese plugin ó si en dado caso por alguna razón tienen que desactivarlo, al hacer esto wordpress les motraría un error de que la función no existe si mal no recuerdo. Para eso utilizamos lo siguiente:

PHP:
  1. <?php
  2.     if(function_exists('mightyadsense4template'))
  3.         mightyadsense4template(Set_Number);
  4. ?>

 

Cabe aclarar que lo que dice "Set_Number" son parámetros que requiere el plugin en este caso.

También pueden utilizar esta otra forma por si desean asignarle ó ponerle algo en especial a su código.

PHP:
  1. <?php if ((function_exists('mightyadsense4template'))) { ?>
  2.     <div id="myAdsBlock">
  3.         <?php mightyadsense4template(Set_Number); ?>
  4.     </div>
  5. <?php } ?>

 

Hasta aquí todo bien, ahora que pasa si queremos que cuando el plugin no esté activado ó no exista nos muestre otra cosa, simplemente hay que agregarle un "else" a nuestra condicional.

Hagamos un ejemplo práctico para todos los que crean themes de WordPress y aún no apliquen esta técnica, para eso utilizaremos ahora el plugin para la paginación tipo Digg. Donde Nikko nos explica como usarlo. A lo que me gustaría complementarlo.

Veamos, si utilizamos la sintaxis que nos dá el plugin queda de esta forma:

PHP:
  1. <?php
  2.     if(function_exists('pagination'))
  3.         pagination(2,array("Anterior","Siguiente"));
  4. ?>

 

Pero para que esto quede bien, tendríamos que eliminar el código que nos dá por default WordPress para su paginación, me refiero a:

PHP:
  1. <div class="navigation">
  2.     <div class="alignleft">
  3.       <?php next_posts_link('Anterior') ?>
  4.     </div>
  5.     <div class="alignright">
  6.       <?php previous_posts_link('Siguiente') ?>
  7.     </div>
  8.   </div>

 

Para resolver esto, teóricamente haremos lo siguiente.
Si la función de pagination existe, muéstra la paginación... pero sino existe, muestra la paginación por default. y nos queda de esta forma:

PHP:
  1. <?php if (function_exists('pagination')) : //condicional si la funcion existe?>
  2.     <?php pagination(2,array("Anterior","Siguiente")); ?>
  3. <?php else : // sino existe muestra esto ?>
  4.     <div class="navigation">
  5.         <div class="alignleft">
  6.             <?php next_posts_link('&laquo; P&aacute;gina anterior') ?>
  7.         </div>
  8.         <div class="alignright">
  9.             <?php previous_posts_link('Siguiente P&aacute;gina &raquo;') ?>
  10.         </div>
  11.     </div>
  12. <?php endif; //termina la condicional ?>

 

El resultado que obtendríamos utilizando esto es que si el usuario tiene instalado el plugin paginación tipo Digg se mostrará esta paginación, pero en dado caso de que no lo tenga ó lo desactive por alguna razón se mostrará la paginación predeterminada que trae WordPress.

Sin duda es algo muy sencillo pero que a la hora de implementarlo en sus themes así sea que no tengan ningúno de los plugins instalados su theme funcionará ^^ y no marcará errores.

Otras entradas relacionadas


2 Trackbacks a este post

  1. macrohw » Blog Archive » Enlace permanente a Condicionar el uso de plugins en WP
    Junio 18, 2007 a las 10:09 am
  2. Poner publicidad entre posts | Infected-FX | tutoriales, photoshop brushes y recursos para diseñadores web
    Junio 26, 2007 a las 04:28 am

2 comentarios

  1. Cristiam
    Junio 20, 2007 a las 12:12 am

    excelente articulo, gracias.

  2. pnkpexomso
    Junio 27, 2007 a las 1:37 pm

    Thanks for this site!
    hifue.info

Agregar comentario

*

*

XHTML: Puedes usar los siguientes tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Aumentar ↓ | Disminuir ↑

Sindica este sitio usando RSS

Recuerda que si quieres mantenerte informado y recibir nuestras actualizaciones agrega nuestro feed a tu lector favorito y podrás darle seguimiento a nuestro sitio.