Respuestas de foro creadas

Viendo 15 respuestas - de la 1 a la 15 (de un total de 15)
  • ozecai

    (@ozecai)

    Gracias @kallookoo, si no pudiera ser en el widget en una página o post me valdría, pero no, no sé programación más allá de toquetear algo el código de otros. Sorprendentemente google no tiene un widget ni nada para eso, y diría que hay una buena comunidad de académicos que estarían encantados.

    gracias compa, cierro hilo.

    Ahora sí! Funciona perfecto. El único inconveniente que le veía era que habrá que poner el campo personalizado cada vez que publique un post, pero lo que he hecho es crear uno de modelo y copiarlo como base con el plugin «Duplicate This» y así ya tengo siempre el campo personalizado definido, aparte de que así puedo predefinor también imagen destacada del post formato, etc.

    Gracias compa. Eres un crack!

    Pues no me funciona, aquí el index-banner.php:

    <!-- Page Title Section -->
    <?php
    $nomimgheader='';
    $urlimgheader='';
    $nomimgheader = get_post_meta($post->ID, 'img-header', true);
    if($nomimgheader !== '') :
    	$urlimgheader = '/wp-content/img-header/' . $nomimgheader . '.jpg';
    	if(file_exists(ABSPATH . $urlimgheader)) :
    		echo '<div class="page-title-section" style="background-image: url(' . $urlimgheader . ')">';
    		else :
    		echo '<div class="page-title-section">';
    	endif;
    else :
    	echo '<div class="page-title-section">';
    endif;
    ?>
    	<div class="overlay">
    		<div class="container">
    			<div class="row">
    				<div class="col-md-6">
    					<div class="page-title"><h1><?php the_title(); ?></h1></div>
    				</div>
    				<div class="col-md-6">
    					<ul class="page-breadcrumb">
    						<?php if (function_exists('qt_custom_breadcrumbs')) qt_custom_breadcrumbs();?>
    					</ul>
    				</div>
    			</div>
    		</div>	
    	</div>
    </div>
    <!-- /Page Title Section -->
    <div class="clearfix"></div>

    Campo personalizado en la entrada http://grupo.us.es/compoliticas/ii-edicion-congreso-internacional-move-net/ con Nombre «img-header» y Valor «ii-edicion-congreso-internacional-move-net»

    y dentro de la carpeta «wp-content» una carpeta «img-header» que tiene dentro la imagen «ii-edicion-congreso-internacional-move-net.jpg»

    pero no hace nada…

    «Recuerda que el nombre de la imagen debe ser el mimso que has puesto en el campo personalizado»

    ¿Te refieres a que la imagen se llame img-header.jpg?

    En el campo personalizado le he puesto de nombre «img-header» y valor el slug de la entrada «ii-edicion-congreso-internacional-move-net» pero no sale.

    De todas formas al editar el archivo “index-banner.php” sustituyendo el <div class="page-title-section"> por lo que me dices, he anulado el código anterior que hacía que las páginas tuvieran la imagen destacada en cabecera. Recuerda que ya sustituí <div class="page-title-section"> por el código que me diste:

    <?php if (is_page()) : ?>
    	<?php
    	//this retrieve the full version of image
    	$image_data='';
    	$image_url='';
    	$image_data = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), 'full', false );
    	$image_url = $image_data[0];
    	?>
    	<?php if ($image_url=='') : ?>
    		<?php echo '<div class="page-title-section" style="background-image: url(http://grupo.us.es/compoliticas/wp-content/uploads/2017/05/baner-noticias.png)">' ?>
    		<?php else : ?>
    		<?php echo '<div class="page-title-section" style="background-image: url(' . $image_url . ')">' ?>
    	<?php endif ?>
    <?php else : ?>
    	<div class="page-title-section">
    <?php endif ?>

    Con ese código anterior todo funcionaba perfecto, las páginas mostraban la imagen destacada en el banner y los post no lo hacían, como debe ser. Lo único que quería afinar es que los post mostraran en el banner una imagen fija (no la imagen destacada del post ya que esta se usa en la portada y vistas previas y por tanto tiene otro tamaño y proporciones).

    Desde mi ignorancia, si ese código empieza por <?php if (is_page()) : ?> y afecta solo a las páginas, quizás otro que empiece por algo como <?php if (is_post()) : ?> e indique que en ese caso ponga como baner una imagen concreta, definiendo su url, sería lo ideal, además así no habría que indicarlo el campo personalizado de los post cada vez que se publique uno, siempre pillaría la imagen definida ahí.

    No sé si es mucho pedir y es viable…

    Ok gracias.

    Vale, ya entiendo el error, lo que dices funciona, pero como indicas que solo se aplique a las páginas (y lo hace perfecto, si no hay imagen destacada pone la del enlace), pues no lo hace en los post que es precisamente donde quiero hacerlo. Vamos que entiendo que lo que falla es esto:

    <?php if (is_page()) : ?>

    Habría que quitarlo de alguna forma o añadir algo así como <?php if (is_post()) : ?> para que haga lo mismo en los post o incluso permita tener en paginas y post una imagen diferente si no hay ninguna destacada.

    donde pongo ese código? lo he puesto en index-banner.php y también en el index-pagina.php que he creado, pero no coge la imagen de la url aunque lo demás sigue funcionando.

    Así queda index-banner.php

    <!-- Page Title Section -->
    <?php if (is_page()) : ?>
    	<?php
    	//this retrieve the full version of image
    	$image_data='';
    	$image_url='';
    	$image_data = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), 'full', false );
    	$image_url = $image_data[0];
    	?>
    	<?php if ($image_url=='') : ?>
    		<?php echo '<div class="page-title-section" style="background-image: url(http://grupo.us.es/compoliticas/wp-content/uploads/2017/05/baner-noticias.png)">' ?>
    		<?php else : ?>
    		<?php echo '<div class="page-title-section" style="background-image: url(' . $image_url . ')">' ?>
    	<?php endif ?>
    <?php else : ?>
    	<div class="page-title-section">
    <?php endif ?>
    
    	<div class="overlay">
    		<div class="container">
    			<div class="row">
    				<div class="col-md-6">
    					<div class="page-title"><h1><?php the_title(); ?></h1></div>
    				</div>
    				<div class="col-md-6">
    					<ul class="page-breadcrumb">
    						<?php if (function_exists('qt_custom_breadcrumbs')) qt_custom_breadcrumbs();?>
    					</ul>
    				</div>
    			</div>
    		</div>	
    	</div>
    </div>
    <!-- /Page Title Section -->
    <div class="clearfix"></div>
    

    Y así el index-pagina.php

    <!-- Page Title Section -->
    <?php if (is_page()) : ?>
    	<?php
    	//this retrieve the full version of image
    	$image_data='';
    	$image_url='';
    	$image_data = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), 'full', false );
    	$image_url = $image_data[0];
    	?>
    	<?php if ($image_url=='') : ?>
    		<?php echo '<div class="page-title-section" style="background-image: url(http://grupo.us.es/compoliticas/wp-content/uploads/2017/04/baner-noticias.png)">' ?>
    		<?php else : ?>
    		<?php echo '<div class="page-title-section" style="background-image: url(' . $image_url . ')">' ?>
    	<?php endif ?>
    <?php else : ?>
    	<div class="page-title-section">
    <?php endif ?>
    			<div class="overlay">
    			<div class="container">
    			<div class="row">
    				<div class="col-md-6">
    					<div class="page-title"><h1><?php the_title(); ?></h1></div>
    				</div>
    				<div class="col-md-6">
    				<ul class="page-breadcrumb">
    						<?php if (function_exists('qt_custom_breadcrumbs')) qt_custom_breadcrumbs();?>
    					</ul>	
    				</div>
    			</div>
    		</div>	
    	</div>
    </div>
    <!-- /Page Title Section -->
    <div class="clearfix"></div>

    Ahora mismo single.php llama al banner, así:

    get_template_part('index','banner'); ?>

    • Esta respuesta fue modificada hace 3 años, 4 meses por ozecai.

    Lo de @lgrusin funciona. Solo que tuve que cambiar el parámetro no solo en page.php sino también en las otras plantillas de página como fullwidth.php o blog-right-sidebar.php

    Ahora solo falta asignar una imagen fija en index-banner.php pues como me recomendaste está el archivo de origen que no tiene imagen en el background. Yo al inicio de esta aventura le puse una en el CSS añadiendo el parámetro background-image así:

    
    .page-title-section .overlay {
    	height: 100%;
    	padding: 50px 0 48px;
    	position: relative;
    	width: 100%;
    background-image:url(url_de_una_imagen_concreta);

    Pero imagino que si lo hago ahora en el CSS eliminará la función de poner ahí la imagen predeterminada en las páginas, así que habría que hacerlo en el index-banner.php ¿no?

    Ok gracias de nuevo, sigo trasteando a ver.

    Oye y ya por afinar aún más si puede ser, es posible hacer que en la página que muestra los post completos, en lugar de coger y poner ahí la imagen del post, coja la de una de las páginas?.

    Por ejemplo tengo una página de «noticias» con su cabecera, es esta: http://grupo.us.es/compoliticas/noticias/

    Pero luego si entro en una noticia, también coge la imagen de esa noticia para la cabecera, por ejemplo aquí: http://grupo.us.es/compoliticas/libro-videoactivismo-y-movimientos-sociales/ y claro no queda bien.

    Lo ideal sería que en todas esas noticias mantuviera la cabecera de la página «noticias».

    Voy haciendo pruebas a ver…

    FUNCIONAAAAA! Mil gracias compa, ha sido un placer!

    A ver si lo entiendo, he sustituído lo que dices, solo esa línea dejando todo lo demás quedando el archivo index-banner.php así:

    <!-- Page Title Section -->
    <?php
    //this retrieve the full version of image
    $image_data='';
    $image_url='';
    $image_data = wp_get_attachment_image_src ( get_the_post_thumbnail( $post->ID), 'full' );
    $image_url = $image_data[0];
    ?>
    <?php if ($image_url='') : ?>
    <div class="page-title-section">
    <?php else : ?>
    <div class="page-title-section" style="background-image:'<?php echo $image_url;?>'">
    <?php endif ?>	
    			<div class="overlay">
    			<div class="container">
    			<div class="row">
    				<div class="col-md-6">
    					<div class="page-title"><h1><?php the_title(); ?></h1></div>
    				</div>
    				<div class="col-md-6">
    				<ul class="page-breadcrumb">
    						<?php if (function_exists('qt_custom_breadcrumbs')) qt_custom_breadcrumbs();?>
    					</ul>	
    				</div>
    			</div>
    		</div>	
    	</div>
    </div>
    <!-- /Page Title Section -->
    <div class="clearfix"></div>

    Me seguía saliendo la misma imagen que puse en el CSS, supongo que se imponía sobre el php de ese archivo, así que quité el parámetro background que había añadido, es decir este:

    background-image:url(url_de_una_imagen_concreta);

    Y ahora ya no sale esa imagen, pero tampoco la destacada de la página sino el fondo rojo que tenía predeterminado el tema, así: http://grupo.us.es/compoliticas/publicaciones/

    Por supuesto me he asegurado de que esa página tiene una imagen destacada. ¿Algo he hecho mal?

    • Esta respuesta fue modificada hace 3 años, 4 meses por ozecai.

    Gracias, sigo probando a ver…

    Lo primero muchas gracias, había visto ese hilo pero tengo muchas dudas, soy un novato osado pero no sé mucho de php, ni de css, aunque con el método de prueba y error me apaño.

    Según veo en ese hilo, lo que parece que hace es poner la imagen destacada de una categoría concreta («produkt»), yo lo que quiero es que en cada página ponga la imagen destacada de esa página de fondo, independientemente de la categoría de la página. Además ese fondo lo quiero en un sitio concreto, en la cabecera, algo que ya he ubicado pero en el css.

    La página con la que estoy trabajando es esta: http://grupo.us.es/compoliticas/

    Como se puede ver, poniendo el enlace en el CSS he logrado que en las páginas salga como fondo en la cabecera una imagen concreta: http://grupo.us.es/compoliticas/proyecto/

    Así en todas las páginas menos en el home sale la misma imagen, en concreto esta: http://grupo.us.es/compoliticas/wp-content/uploads/2017/04/manifa.jpg

    Lo que me gustaría es que ahí saliera en cada página la imagen destacada que le ponga a esa página. Por aclarar lo que quiero hacer.

    Respecto a cómo hacerlo, realmente me hago un lío para saber en que plantilla tengo que poner el código php, por si sirve de algo estoy usando el tema Appointment red, pero no se si debo tocar el código en la plantilla «Fullwidth Plantilla de Página (fullwidth.php)» ya que las páginas están a ancho completo o en «Single Page (page.php)» o en algún otro sitio, tampoco sé exactamente en que lugar de esas plantillas poner el código ni si tengo además que poner algo en el CSS para que lo de poner la imagen destacada de fondo lo haga justo donde quiero. Al menos sé en que parte del CSS se hace, pues ya he logrado poner una imagen, aunque sea la misma para todas las páginas.

    Quizás me estoy lanzando demasiado pero puede que con un poco de ayuda sea capáz de hacerlo 😉

Viendo 15 respuestas - de la 1 a la 15 (de un total de 15)