Como poner música MP3 dependiendo de una página

I have a client who asked me something very particular:

  • He wanted  a site with music in some pages. This is easy to solve. Also,
  • The customer wanted to hear some pages different songs in different pages
  • The customer wanted the music to start automatically when you open a page

There are several undercover details, and I included the following restrictions:

  1. The plugin should avoid unnecessary programming. This restriction eliminated some plugins, which require some add code to the pages or the page’s structure. At this moment I forgot who they were, maybe for good..
  2. The plugin should run in the sidebar. I can think of three reasons:
    • Is more appropriate to put it in the sidebar instead be added to each page.
    • Also, if you want to put a music in the whole site, where do you do it? In the sidebar for sure
    • The last reason is that it is a simple drag & drop the sidebar using widgets.
  3. Also, we had several pages with child pages. The idea is to find an easy way to play a specific song on a page and his child pages.
Tengo un cliente que me pidió algo bastante particular:

  • Quiere que el sitio tenga música. Esto es fácil de resolver. Ahora bien:
  • El cliente quiere que ciertas páginas se escuchen diferentes temas musicales
  • El cliente desea que la música se inicie automáticamente al abrir una página

Hay varios detalles undercover, y además incluí como restricciones:

  1. El plugin debe evitar la programación innecesaria. Esta restricción eliminó algunos plugins de entrada, que requerían cierta agregar código a las páginas o a la estructura del tema. En este momento olvidé cuales fueron, quizá para bien.
  2. El plugin debería correr en el sidebar del sitio. Se me ocurren tres razones para ello:
    • Es más apropiado ponerla en el sidebar en vez ir agregandolo  en cada página.
    • Si quisiera poner una tema musical en particular en todo el sitio, donde lo haría?  Pues en el sidebar
    • La última razón es que es más sencillo un drag&drop al sidebar usando widgets.
  3. Por último, encontrar una manera sencilla de que un tema musical se ejecute en una página padre y sus hijas.

Solution

I Choose the MP3 Flash Player plugin,  I suspect that inherits the functionality of  JW Player (very good indeed). It is very flexible and allowed me to make all the adjustments required (no additional coding.) Something to improve in this plugin: there should be a way to handle relative paths for the mp3 files as well for the images used in the background.

On the other hand, use the Widget Logic plugin, It was very useful to set widgets on specific pages.

Finally, I  added a function to the functions.php file, obtained via the WordPress link Child Function

/ *
name: is_child

author: Nicholas Roussos, http://www.nicholasroussos.com/general/wordpress-is_child-function/

description: determines whether a page is the daughter of another.
Limitations: does not work in sub-hierarchies, ie if a daughter is daughter of a child, etc.
* /
is_child function ($ parent) {
global $ WP_Query;
if ($ WP_Query-> post-> post_parent == $ parent) {
$ Return = true;
}
else {
$ Return = false;
}
return $ return;
}

With this functionality, I can define the widget logic properly:

  • If you want to see a thread on one page: is_page (page_number)
  • If you want to appear on a page and its children: is_page (page_number) or is_child (page_number)
  • There is a workaround to is_child it was: is_page (array (p1, p2, p3 … .. pn)) but can be a bit impractical for hierarchies, especially if the site is great. Also we have to change it every time we add a new child page.

Solución

Elegí el plugin Flash MP3 Player que sospecho que hereda la funcionalidad del JW Player (muy bueno por cierto). Es muy flexible y me permitió hacer todos los ajustes que necesitaba (sin codificación adicional). Como algo a mejorar en este plugin , debería haber una manera de manejar caminos relativos para los archivos mp3, asi como para las imágenes que usa de fondo.

Por otro lado, uso el plugin Widget Logic, que me ha sido de gran utilidad para configurar que widgets aparecen o no en determinadas páginas.

Por último, agrego una función al archivo functions.php ,obtenido via el link WordPress Child Function:

/*
name: is_child
autor: Nicholas Roussos, http://www.nicholasroussos.com/general/wordpress-is_child-function/
descripcion: determina si una página es hija de otra.
limitaciones: no funciona en subjerarquías, es decir si una hija de una hija es child , etc.
*/

function is_child($parent) {
global $wp_query;
if ($wp_query->post->post_parent == $parent) {
$return = true;
}
else {
$return = false;
}
return $return;
}

Con esta funcionalidad, puedo definir con el widget logic:

  • Si quiero que aparezca un plugin en una página: is_page(nro_de_pagina)
  • Si quiero que aparezca en una página y sus hijos: is_page(nro_de_pagina) or is_child(nro_de_pagina)
  • Hay un workaround a is_child que es:  is_page(array(p1,p2,p3…..pn)) pero puede ser un poco impráctico para jerarquías, especialmente si el sitio es grande y además necesita actualizarse cada vez que se agrega una página hija.

No Comments


Leave a Reply

Your email address will not be published Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*