Archivi tag: guide

Ottenere una pagina con post di una categoria in WordPress ed eliminarla dalla index

Propongo a tutti i lettori una soluzione in WORDPRESS per ottenere un pagina con i post appartenenti ad una categoria e allo stesso tempo non far visualizzare tali post nella home del sito

Ho ottenuto questa soluzione dopo vari tentativi e dopo aver ricercato con esito negativo plug-in adatti a questo scopo. Nel mio caso ho gestito la sezione paper-toy di questo sito. Come potete vedere se aprite tale pagina, dal menù, vengono visualizzati alcuni articoli che invece nella home non vedrete.

Per prima cosa ho creato un nuova categoria e ho preso nota dell’id di questa categoria, successivamente ho creato un template di pagina seguendo la guida a in inglese di wordpress. GUIDA TEMPLATE PAGINA.

Quindi ho creato un nuovo file che verrà caricato sul server nella cartella: directoryBlog/wp-content/themes/nomeTema con il seguente contenuto. In particolare ho copiato il codice base che è presente, per la visualizzazione dei post, nella pagina index o anche nell’ archive.php alla quale ho effettuate opportune modifiche che descriverò in seguito.

<?php
/*
Template Name: Paper Toy
*/
?>
<?php get_header(); ?>
<div id="left-wrap">
<div id="content">
<div class="page">
<?php
if(!empty($_GET['paged']))
$paged = $_GET['paged'];
else $paged=1;
query_posts('cat=403&paged='.$paged) ?>
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<h2><?php the_title(); ?></h2>

<div class="entry">
<?php the_content(__('Read the rest of this entry »','wp_multiflex')); ?>
</div>
<?php link_pages('<p>'.__('Pages:','wp_multiflex'), '</p>', 'number'); ?>
<p class="suffix">
<?php edit_post_link(__('Edit','wp_multiflex'), '', ' | '); ?>  <?php comments_popup_link(__('No Comments »','wp_multiflex'), __('1 Comment »','wp_multiflex'), __('% Comments »','wp_multiflex')); ?>
</p>
<?php endwhile; endif; ?>

<div class="bottomnavigation">
<div class="alignleft"><?php next_posts_link(__('« Previous Entries','wp_multiflex')) ?></div>
<div class="alignright"><?php previous_posts_link(__('Next Entries »','wp_multiflex')) ?></div>
</div>
<p class="Modifica Pagina"><?php edit_post_link(__('Edit','wp_multiflex'),'',''); ?></p>
</div><!-- Close id="page" -->

</div><!-- Close id="content" -->
<?php get_sidebar(); ?>
</div> <!-- Close id="left-wrap" -->
<?php include (TEMPLATEPATH . '/right-sidebar.php'); ?>
<?php get_footer(); ?>

Le righe aggiunte, e quindi non copiate dal file index.php, sono solo 4 righe:

if(!empty($_GET[‘paged’]))
$paged = $_GET[‘paged’];
else $paged=1;
query_posts(‘cat=403&paged=’.$paged) ?>

Le prime 3 di queste servono a gestire la selezione dei post nella varie pagine quando ci si inizia a spostare su vecchi articoli postati nella stessa categoria. Quindi per prima cosa ho inizializzato la variabile $paged con il numero di pagina che opzionalmente viene passato in automatico attraverso l’url, se così non è, perchè si è fatto accesso alla pagina PAPER-TOY dal menu, la inizializzo a 1.

Successivamente seleziono i post, con la funzione query_posts,(guida query_posts), della sola categoria “403” che corrisponde appunto a quella di cui voglio visualizzare i post e poi gli ho segnalato da quale pagina partire.

Successivamente ho creato una pagina bianca normale alla quale ho associato attraverso l’apposita sezione/menu dell’interfaccia di wordpress il template creato.

Infine per non permettere di visualizzare i post di una categoria nella home del sito ho modificato il file index.php del template usato.

In particolare ho aggiunto 2 righe:

dopo la riga, di solito simile a tutti i temi:

<?php while (have_posts()) : the_post(); ?>

la riga:

<?php if ( !(in_category(‘403’)) ) { ?>

e prima della riga:

<?php endwhile; ?>

la riga:

<?php } ?>

Queste righe servono appunto a non eseguire le istruzioni contenute tra le 2 se il post appartiene appunto alla categoria della quale non si vogliono vedere gli articoli.

Se avete altre soluzioni, magari più semplici, fatemi sapere!!

Grazie a tutti!!!