Foros del Web » Creando para Internet » Sistemas de gestión de contenidos » WordPress »

[SOLUCIONADO] Codigo en index no funciona en functions

Estas en el tema de Codigo en index no funciona en functions en el foro de WordPress en Foros del Web. Hola!! Tengo una web de videos y en el index he conseguido que debajo de todos los videos salga las visitas que ha tenido y ...
  #1 (permalink)  
Antiguo 07/03/2013, 20:07
 
Fecha de Ingreso: diciembre-2006
Mensajes: 384
Antigüedad: 18 años
Puntos: 5
Codigo en index no funciona en functions

Hola!!

Tengo una web de videos y en el index he conseguido que debajo de todos los videos salga las visitas que ha tenido y la duración del video.
Dentro de los post, he creado manualmente para que salgan los videos relacionados, utilizando el functions. Pero utilizando el mismo codigo que en el index no consigo que se vea la duración del video, las visitas si que se ven.

Utilizo este codigo en el index.php:

Código:
<span class="flor"><?php echo mt_mvisitas(get_the_ID()); ?> Visitas</span>
                            	<?php echo "".get_post_meta($post->ID, "autor", $single = true); ?>
Y este en el functions.php:

Código:
<span class="flor">'.mt_mvisitas(get_the_ID()).'<i class="icvi ico"></i></span>

<i class="icda ico"></i>'.get_post_meta($post->ID, "autor", $single = true'

pero por mucho que lo intento, no hay manera de que salga la duración del video en los videos relacionados, que pertenece al codigo del functions.php. La duración del video sale con una variable que he creado y es "AUTOR"

Gracias
  #2 (permalink)  
Antiguo 08/03/2013, 07:24
Avatar de Nekko
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Buenos Aires
Mensajes: 3.141
Antigüedad: 16 años, 8 meses
Puntos: 656
Respuesta: Codigo en index no funciona en functions

A tu código del functions le falta el paréntesis de cierre del get_post_meta. Igualmente no logro darme bien una idea :P
__________________
Taller para crear themes wordpress desde cero | Presupuestos para trabajos particulares vía MP
  #3 (permalink)  
Antiguo 08/03/2013, 08:46
 
Fecha de Ingreso: diciembre-2006
Mensajes: 384
Antigüedad: 18 años
Puntos: 5
Respuesta: Codigo en index no funciona en functions

Aún con el cierre sigie sin funcionar!!. Lo que no entiendo es porue en el index si que funciona, pero en el sidebar que se guia mediante functions NO :(
  #4 (permalink)  
Antiguo 08/03/2013, 12:48
Avatar de 23r9i0  
Fecha de Ingreso: noviembre-2008
Ubicación: Catalonia
Mensajes: 203
Antigüedad: 16 años, 1 mes
Puntos: 33
Respuesta: Codigo en index no funciona en functions

tu problema es que get_the_id o the_ID necesita la variable $post que se crea antes de lanzar el loop con lo que en el functions no puedes obtenerla necesitas añadirla en tu funcion.
Ejemplo
Archivo functions.php
Código:
function view_id_post($id){
echo $id;
}
Archivo index.php
Código:
...
$id = get_the_ID;
view_id_post($id);
...
  #5 (permalink)  
Antiguo 10/03/2013, 06:49
 
Fecha de Ingreso: noviembre-2010
Mensajes: 46
Antigüedad: 14 años, 1 mes
Puntos: 1
Respuesta: Codigo en index no funciona en functions

yo estoy intentando algo parecido y con esta ayuda creo que lo he solucionado
  #6 (permalink)  
Antiguo 10/03/2013, 06:52
 
Fecha de Ingreso: diciembre-2006
Mensajes: 384
Antigüedad: 18 años
Puntos: 5
Respuesta: Codigo en index no funciona en functions

Hola!

gracias por contestar, lo he intentado como me has puesto el ejemplo pero no se si es que no consigo hacerlo yo bien para que salga o directamente no funciona.

Si no es molestia, podrian ponerme el codigo exacto que deberia poner en el functions para que funcione ;)

gracias y perdonen las molestias
  #7 (permalink)  
Antiguo 10/03/2013, 10:09
Avatar de 23r9i0  
Fecha de Ingreso: noviembre-2008
Ubicación: Catalonia
Mensajes: 203
Antigüedad: 16 años, 1 mes
Puntos: 33
Respuesta: Codigo en index no funciona en functions

no te puedo poner el codigo completo ya que tu no has puesto tu function completa y por eso puse ese ejemplo pero no tiene misterio.
  #8 (permalink)  
Antiguo 10/03/2013, 14:40
 
Fecha de Ingreso: diciembre-2006
Mensajes: 384
Antigüedad: 18 años
Puntos: 5
Respuesta: Codigo en index no funciona en functions

Código:
function listar_aleatorio($total,$id=NULL,$tipo=1,$recortartitulo=100,$recortardescripcion=200){

	$listado='';

	$catid='';

	$upload_dir = wp_upload_dir();

	foreach((get_the_category($id)) as $category) { 

    $catid.=$category->cat_ID.','; 

	}

	$my_query2 = new WP_Query('posts_per_page='.$total.'&ignore_sticky_posts=1&orderby=rand&cat='.$catid);

	if ($my_query2->have_posts()) : while ($my_query2->have_posts()) : $my_query2->the_post();

		if(get_the_ID()==$id) continue;

if($tipo==1){

					$duracion = get_post_meta(get_the_ID(), 'duracion', true);

					$votos=get_post_meta(get_the_ID(), 'ratings_score', true);

					$pieces = explode("-", $votos);

					$votos=str_replace('-','',$votos);

$listado.='

                	<!--<post>-->

                	<li class="fx">

                    	<article>

                        	<header class="imgpst pore">

                            	<a href="'.get_permalink().'">

                                	<img src="'.mt_img(get_the_ID(),'thumbnail').'" alt="imagen video '.get_the_title().'"'; if (substr_count(mt_img(get_the_ID(),'thumbnail'), 'thumbnail') != 1) { $listado.='class="flipbook" data-max="'.get_post_meta(get_the_ID(),'thn',true).'" data-thumbnail="'.mt_img(get_the_ID()).'" data-path="'.$upload_dir['baseurl'].'/'.get_the_ID().'-{index}.jpg"'; } $listado.='>

                                    <span class="poab fx">';

									if(count($pieces)==2){ $listado.='<span class="vodo flor">'.$votos.' <i class="ico icovot"></i></span>'; }else{ $listado.='<span class="voup flor">'.$votos.'<i class="ico icovot"></i></span>'; }

									if($duracion!=''){ echo $duracion; }

									$listado.='</span>

                                </a>

                            </header>

                            <h2><a href="'.get_permalink().'">'.recortar_texto(get_the_title(),$recortartitulo).'</a></h2>

                            <footer class="ovhd">

                            	<span class="flor">'.mt_mvisitas(get_the_ID()).'<i class="icvi ico"></i></span>

                            	<i class="icda ico"></i>'.relative_date(strtotime("".get_the_date('Y')."-".get_the_date('m')."-".get_the_date('d')." ".get_the_date('H').":".get_the_date('i').":".get_the_date('s')."")).'

                            </footer>

                        </article>

                    </li>



Esta es la parte del functions.php que habría que modificar (la que he puesto en negrita). Yo lo he conseguido realizar en el index y en las categorias poniendo este codigo, pero claro en el index.php y en page.php.

Para los videos relacionados el cogido que coge es el que he puesto del fuctions, y ahí es donde no consigo poner lo mismo que en el index y en el page.

En el index y page lo he conseguido con cambiando el codigo por este:

Código:
                            <footer class="ovhd">
                            	<span class="flor"><?php echo mt_mvisitas(get_the_ID()); ?> Visitas</span>
                            	<?php echo "".get_post_meta($post->ID, "autor", $single = true); ?>
                            </footer>

y me ha funcionado


Muchas gracias y perdona tanta molestia
  #9 (permalink)  
Antiguo 10/03/2013, 19:59
Avatar de 23r9i0  
Fecha de Ingreso: noviembre-2008
Ubicación: Catalonia
Mensajes: 203
Antigüedad: 16 años, 1 mes
Puntos: 33
Respuesta: Codigo en index no funciona en functions

edito:
No vi la ultima linea de tu post, pero si quieres sigue leyendo.

Hola,
Supondo que el codigo no esta completo, verdad?
Aparte de eso veo algunos errores o yo lo haria de otra manera.
-Creas una nueva WP_Query llamada $my_query2 pero no se si la terminas, endwhile, endif, wp_reset_query().
-Yo usaria un array para definir las opciones de WP_Query, ejemplo:
Código:
$args = array(
'posts_per_page' => $total,
'ignore_sticky_posts' => 1, // 1*
'orderby' => 'rand',
'category__and' => array( $catid ) // 2*
);
$my_query2 = new WP_Query( $args );
1* - muestra los sticky_posts como un post normal, para que no se muestren seria otro codigo.
2* - el foreach de $catid lo haria asi:
Código:
foreach( get_the_category( $id ) as $category ){ 
$catid[] = $category->cat_ID; 
}
y en
Código:
'category__and' => array( $catid )
lo cambio por
Código:
'category__and' =>  $catid
- if(get_the_ID()==$id) lo cambiaria por:
Código:
if($post->ID == $id)
- Tambien hay otras cosas pero como te funciona o eso creo y cada uno tiene su manera, no entrare en como haces las cosas paso ha pasarte la linea que estaba en negrita.
Código:
relative_date( strtotime( get_the_date( 'Y-m-d H:i:s' ) ) )
Solo te he modificado tantos get_the_date al no ser necesarios.
Es lo unico que puedo hacer ya que considero que no le veo error alguno. Aparte que la function relative_date() no se ni lo que hace.

P.D:
veo que usas funciones propias como mt_img, o usas wp_upload_dir() para mostrar la url, es necesario?

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:18.