¿Cómo tener una sección de entradas en páginas estáticas?

  • Autor Autor ramonjosegn
  • Fecha de inicio Fecha de inicio
ramonjosegn

ramonjosegn

Sigma
Verificación en dos pasos activada
A raíz de un blog que estoy armando me veo en la necesidad de tener una configuración de este tipo, pero no sé si es posible, agradezco si alguien sabe que me indique los pasos para conseguir algo así

PAGINA 1
- entrada 1
- entrada 2
- entrada 3
....

PAGINA 2 (BLOG)
- entrada 1
- entrada 2
- entrada 3
....

PAGINA 3 ESTATICA

eso se puede hacer?
necesito una página para un listado de productos y marcas, y otra página para el blog, por eso me gustaría tener ese orden, si es que es posible, gracias
 
Por que no usar categorias?
En la home pones una restricion para que no se muestre un determinada categoria, esa la usas en la pagina 1... La pagina 2 te queda el blog con la restrccion y la tercera usas una pagina comun y corriente.

De todas formas se puede hacer de la forma en que lo pedis usando page templates: Pages « WordPress Codex y algo de codigo... fijate que ahi mismo tenes la parte de "Pagina de posts" Donde lo explican.


El codex de WP me salvo un millar de veces la verdad.
 
ok, voy a intentarlo como lo propones, porque el código se me atraganta...

cómo pongo la restricción? la plantilla que estoy usando no me permite ocultar categorías del home...

por lo que he estado mirando se puede hacer con menús personalizados...

Custom Menus « Support — WordPress.com
 
Entonces usa lo segundo que es mas facil:
HTML:
<?php
/*
Template Name: PageOfPosts
*/

get_header(); ?>

<div id="content" class="narrowcolumn">

<?php
if (is_page() ) {
$category = get_post_meta($posts[0]->ID, 'category', true);
}
if ($category) {
  $cat = get_cat_ID($category);
  $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
  $post_per_page = 4; // -1 shows all posts
  $do_not_show_stickies = 1; // 0 to show stickies
  $args=array(
    'category__in' => array($cat),
    'orderby' => 'date',
    'order' => 'DESC',
    'paged' => $paged,
    'posts_per_page' => $post_per_page,
    'caller_get_posts' => $do_not_show_stickies
  );
  $temp = $wp_query;  // assign orginal query to temp variable for later use   
  $wp_query = null;
  $wp_query = new WP_Query($args); 
  if( have_posts() ) : 
		while ($wp_query->have_posts()) : $wp_query->the_post(); ?>
	    <div <?php post_class() ?> id="post-<?php the_ID(); ?>">
        <h2><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></h2>
        <small><?php the_time('F jS, Y') ?> <!-- by <?php the_author() ?> --></small>
        <div class="entry">
          <?php the_content('Read the rest of this entry »'); ?>
        </div>
        <p class="postmetadata"><?php the_tags('Tags: ', ', ', '<br />'); ?> Posted in <?php the_category(', ') ?> | <?php edit_post_link('Edit', '', ' | '); ?>  <?php comments_popup_link('No Comments »', '1 Comment »', '% Comments »'); ?></p>
      </div>
    <?php endwhile; ?>
    <div class="navigation">
      <div class="alignleft"><?php next_posts_link('« Older Entries') ?></div>
      <div class="alignright"><?php previous_posts_link('Newer Entries »') ?></div>
    </div>
  <?php else : ?>

		<h2 class="center">Not Found</h2>
		<p class="center">Sorry, but you are looking for something that isn't here.</p>
		<?php get_search_form(); ?>

	<?php endif; 
	
	$wp_query = $temp;  //reset back to original query
	
}  // if ($category)
?>

	</div>

<?php get_sidebar(); ?>

<?php get_footer(); ?>
Eso lo guardas como postsenpaginas.php y lo guardas en la carpeta del theme.

Despues creas una pagina, y en el sidebar te sale la opcion de asignarle un page template, ahi va a salir esta que creaste.

Por ultimo a la pagina le metes un custom field "category" con el nombre de la categoria que queres mostrar en esa pagina.

Despues en el index tenes que buscar
HTML:
 <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>

Y justo antes de eso le metes:
HTML:
<?php query_posts($query_string . '&cat=-3,-8'); ?>
Donde 3 y 8 serian las categorias que queres evitar que salgan en el index.

Y listo ya tenes todo listo.
 
gracias, no era necesario todo el código, pero he visto que muchas personas preguntan lo mismo online y nadie da una respuesta concreta, te agradezco mucho
 
Avisame si te funciono...
Y si es asi me debes 50 dolares 😛
 
como ya te comenté no voy a usar código, no merece la pena, porque sé que me van a pedir cambios... y estoy seguro de que te pagarían los 50 usd por el código (soy pobre), gracias

me temo que todas las opciones que estamos mirando van a ser muy complejas para el cliente... me parece que simplemente voy a poner una categoría llamada Blog, y listo... no me complico la vida y al cliente tampoco
 
Los menús personalizados es lo que buscas, son muy fácil de usar para el cliente.
 
Los menús personalizados es lo que buscas, son muy fácil de usar para el cliente.

muchas gracias Mario, sí he visto esa opción, pero entonces debo meter contenido en la página donde irían asignado el blog... es algo desconcertante, no creo que a nadie se le haya ocurrido alguna forma de "desactivar" la página para que funcione exactamente como si fuera el blog habitual...

CON MENUS PERSONALIZADOS TENGO
PAGINA >>>> pero acá debo meter algún texto... creo que se ve muy enrevesado...
-BLOG (ENTRADAS)
 
No entiendo muy bien lo que dices ¿quieres que en la página se muestren posts como si fueran categorías? si es así igual y los post types podrían ser más útiles que las páginas

- Post Type 1
-- Entrada 1
-- Entrada 2
-- Entrada 3

- Post Type 2
-- Entrada 1
-- Entrada 2
-- Entrada 3

etc...
 
me explico: quiero 2 blogs en el mismo sitio, creo que así se entenderá mejor, ambos con sus categorías y entradas y sin una página superior con información... me explico?

post types... ya se sale de mis conocimientos, soy novato en wordpress...
 
No entiendo porque no te sirve la solucion que te pase.
Cumple con todas tus necesidades.
La pagina ni siquiera necesita contenido. Solo aplicarle el template y custom field.

Hay que meter un poco de codigo... Pero queda perfecto.

De hecho si te salis del loop comun de WP y usas querys armadas por vos podes hacer casi cualquier cosa con wordpress.
 
no he dicho que no me sirva, sólo que cada vez que meto código rompo algo, no soy programador, sino diseñador, para mí no es obvio dónde van los códigos o cómo manejarlos, si fuera para algún sitio mío no me importaría experimentar, pero ya tengo el theme traducido y modificado con todo el diseño, no me gustaría tener que volver a subir y reorganizar todo, como ya me ha pasado muchas veces
 
Entonces mas facil aun...
Instalas WP desde cero. Habiitas la opcion multisite. Y creas un nuevo blog que sea tudominio.com/blog y dejas el principal para los productos... o al revez.

Listo tenes dos WP, corriendo en el mismo dominio, y con una estructura que no deja entrever que sean dos sitios diferentes. El manejo es igual de sencillo que cualquier WP.

Saludos
 
Entonces creo que los post types si serían lo mejor, amenos que quieras instalar un multisitio 😛

Deja te explico un poco, al utilizar los post types puedes tener dos tipos diferentes de artículos sin necesidad de usar categorías, piensa que tuvieras un sitio de videojuegos, en lugar de crear categorías como estas:

-- Reseñas
-- Guias
-- Acción
-- RPG
-- Trucos

Podrías agregar un tipo de post (o sección) llamado "reseñas", otro llamado "Guias", otro llamado "trucos" y las categorías serían sólo:

-- Acción
-- Aventura
-- RPG

De esa forma tendrías pequeños "blogs", uno para reseñas, otro para guias y así, espero me explique.

Para eso no hay que meter mucho código, sólo un poco en el archivo functions.php

PHP:
// Comenzamos la funcion
function create_post_type() {
  // Primer post type
  register_post_type( 'blog_1',
    array(
    'labels' => array(
		'name' => __( 'Nombre en plural' ),
		'singular_name' => __( 'Nombre en singular' ),
      ),
    'public' => true,
    'menu_position' => 5, // Esto lo colocara justo debajo de los articulos
    'rewrite' => array('slug' => 'blog_1'), //permalink web.com/blog_1/blaa
	'supports' => array('title','editor','author','thumbnail','custom-fields',) // funciones que soporta
    )
  );
}
add_action( 'init', 'create_post_type' ); // "Aplicamos los cambios"

Con eso tendrías un apartado para tu blog normal y otro para blog_1, se vería más o menos así:

post_types.webp

Sé que parece un poco complicado para el desarrollador, pero es muy fácil de usar para el cliente, además seguro hay algún plugin que haga todo esto por ti.
 
Atrás
Arriba