- Mensajes
- 1,537
- Puntuación de reacción
- 0
Buenas,
veréis, estoy haciendo un slider con JS que viene definido según que página se visite por PHP en mi blog de Wordpress, explico como lo estoy haciendo y cual es el problema:
En mi header PHP tengo llamo a una función:
En functions.php creo la función:
Nota: Ya se que la función se puede hacer más simple definiendo la variable $imgs desde el principio, pero es que lo tengo así porque empecé a hacer algo más complicado y después cambié de idea.
Nota2: La variable $pagename devuelve texto, está definida más arriba.
Nota3: Cada slider-loquesea.php contiene simple HTML
El problema, bien sea con include o include_once, es que me aparece un uno (1) sin saber de donde sale, por ejemplo si en mi slider-home.php tengo algo así:
En la página principal dento de section #slider me aparece algo así:
La solución al uno es fácil, en vez de un include lo hago con la función de Wordpress get_template_part(), tal que así:
Pero la solución no me basta, ¿por qué me aparece un uno?
Saludos
veréis, estoy haciendo un slider con JS que viene definido según que página se visite por PHP en mi blog de Wordpress, explico como lo estoy haciendo y cual es el problema:
En mi header PHP tengo llamo a una función:
PHP:
<section id="slider">
<?php echo slider_cabecera();?>
</section>
En functions.php creo la función:
PHP:
function slider_cabecera($imgs) {
if ( is_home() ) {
$tmp = include_once( TEMPLATEPATH. '/inc/slider-home.php' );
} elseif ( is_page_template('contacto.php') ) {
$tmp = include( TEMPLATEPATH. '/inc/slider-contacto.php' );
} elseif (is_page_template('acerca.php')) {
$tmp = include( TEMPLATEPATH. '/inc/slider-acerca.php' );
} else {
$txt = "<div class='texto'>$pagename</div>";
}
$imgs = (!$txt) ? $tmp : $txt;
return $imgs;
}
Nota: Ya se que la función se puede hacer más simple definiendo la variable $imgs desde el principio, pero es que lo tengo así porque empecé a hacer algo más complicado y después cambié de idea.
Nota2: La variable $pagename devuelve texto, está definida más arriba.
Nota3: Cada slider-loquesea.php contiene simple HTML
El problema, bien sea con include o include_once, es que me aparece un uno (1) sin saber de donde sale, por ejemplo si en mi slider-home.php tengo algo así:
Código:
<div id="1">algo</div>
<div id="2">algo2</div>
<div id="3">algo3</div>
En la página principal dento de section #slider me aparece algo así:
HTML:
algo
algo2
algo3
1
La solución al uno es fácil, en vez de un include lo hago con la función de Wordpress get_template_part(), tal que así:
PHP:
if ( is_home() ) {
$tmp = get_template_part( 'inc/slider', 'home' );
} elseif ( is_page_template('contacto.php') ) {
$tmp = get_template_part( 'inc/slider', 'contacto' );
} elseif (is_page_template('acerca.php')) {
$tmp = get_template_part( 'inc/slider', 'acerca' );
} else {
$txt = "<div class='texto'>$pagename</div>";
}
Pero la solución no me basta, ¿por qué me aparece un uno?
Saludos