Home › Forum › Localizzazione WP › Nascondere più categorie nel Loop
-
AutorePost
-
-
7 Marzo 2006 alle 16:55 #1186andryonlinePartecipante
Per non mostrare 1 categoria nella home, basta inserire questo codice nel Loop:
<?php if ( !(in_category(‘1’)) ) { ?>
Per non mostrare 2 categorie?
Sembrerà banale, ma non ho capito come fare, perchè coi seguenti tentativi, non funziona:
<?php if ( !(in_category(‘1,2’)) ) { ?>
<?php if ( !(in_category(‘1′,’2’)) ) { ?>
PS: ho provato anche a lasciare gli spazi dopo la virgola…
-
7 Marzo 2006 alle 17:09 #37544SteveAglAmministratore del forum
Non può funzionare cosଠperchè in_category accetta un singolo parametro, quidi devi usare una formula più complessa:
<?php if ( !(in_category(‘1’) || (in_category(‘2″‘)) ) { ?>
Usando quindi l’OR
-
7 Marzo 2006 alle 17:43 #37545andryonlinePartecipante
Funzione OR?
Non ho capito solo perchè hai lasciato 3 apostrofi dopo il 2. Hai sbagliato o è quella la forma giusta?
-
7 Marzo 2006 alle 17:47 #37546SteveAglAmministratore del forum
Si OR = || quindi l riga si legge se non è nella categoria 1 oppure (OR) non è nella categoria 2 allora…
riguardo agli apici.. son sbagliati.. e non solo quello
<?php if ( !(in_category(‘1’) || !(in_category(‘2’)) ) { ?>
Cos’ “dovrebbero” esser giusti, p da provare non l’ho testata ma se funziona con una categoria perchè non dovrebbe funzionare con due
-
7 Marzo 2006 alle 17:52 #37547andryonlinePartecipante
con questo codice:
<?php if ( !(in_category(‘1’)) || !(in_category(‘2’)) ) { ?>
non funziona ancora…
-
8 Marzo 2006 alle 9:25 #37557andryonlinePartecipante
Sembra una cosa banale e lo è se si deve nascondere una sola categoria, ma come si fa a nasconderne due?
In quel modo non funziona…
-
8 Marzo 2006 alle 13:47 #37569SteveAglAmministratore del forum
non devi usare in_category, ma probabilmente personalizzare il Loop, in modo da escludere le categorie.
Ne abbiamo parlato in una discussione di un utente che voleva mostrare 4 categorie nella home, prova a cercarla, oppure vai nella pagina del nostro Wiki dedicata al Loop, ci dovrebbero essere alcuni link esterni a pagine che spiegano come si fa la personalizzazione.
-
8 Marzo 2006 alle 13:53 #37572andryonlinePartecipante
Credo tu ti riferisca a questa discussione:
http://www.wpitaly.it/forum/topic.php?id=985
Bene, non è quello che voglio fare. Io voglio semplicemente non far comparire 2 categorie nel Loop.
Per 1 non ci sono problemi, ma con 2 non si riesce…
-
8 Marzo 2006 alle 19:32 #37575SteveAglAmministratore del forum
sà¬, ma il meccanismo è simile, devi solo trovare il sistema per passare alla query i parametri giusti per escludere le 2 categorie
-
8 Marzo 2006 alle 21:21 #37579andreaPartecipante
Andryonline,
prova il meccanismo indicato da SteveAgl, usando la funzione AND (&&) invece che OR (||). Sei d’accordo SteveAgl? Scambio spesso anch’io le due funzioni.
-
8 Marzo 2006 alle 22:47 #37584andryonlinePartecipante
Andrea il tuo suggerimento ha risolto il problema!
Grazie a tutti!
Ecco il codice corretto:
<?php if ( !(in_category(‘1’)) && !(in_category(‘2’)) ) { ?>
Non che sia una cosa importantissima, ma almeno abbiamo imparato tutti una cosa nuova.
Ora però ci sarebbe un altro problemino…
Ma penso irrisolvibile.
In pratica nel loop viene lasciato lo spazio ai post delle categorie che ho escluso (grazie a voi).
In pratica se nella pagina X del blog vi erano tutti post delle categorie ormai nascoste, quella pagina risulterà vuota, senza alcun post.
Se possibile, come si potrebbe ovviare al problema?
-
9 Marzo 2006 alle 10:27 #37588SteveAglAmministratore del forum
Si verissimo, entrambe le condizioi devono essere soddisfatte e quindi serve un AND…
Per il problema di pagina vuota, direi che se basta usare un contatore, incrementato ad ogni post visualizzato, alla fine del loop se il contatore è a zero non è stato mostrato alcun articolo e puoi far stampare un messaggio opportuno, altrimenti ha mostrato degli articoli e quindi non fai nulla. IN pratica scrivendolo in una “pseudocodice” avresti:
contatore = 0
inizio Loop
SE Non appartiene a cat1 o cat2
stampo il post
contatore = contatore++
Fine SE
Fine Loop
Se conttore > 0
Stampa "non ci sono articoli"
Finese
-
9 Marzo 2006 alle 11:53 #37591andryonlinePartecipante
Non ho capito bene (per via delle mie poche conoscenze).
In pratica tu mi dici di far comparire una scritta per indicare che in quella pagina non vi sono articoli?
Io vorrei che venissero saltate le categorie nascoste e che quindi venissero visualizzati, come da impostazioni, 10 post per pagina.
-
9 Marzo 2006 alle 12:18 #37592SteveAglAmministratore del forum
Ah vediamo se ho capito:
Hai il Loop che mostra ad ese. 10 articoli, se per caso però i primi 10 articoli appartengono alle categorie che vuoi nascondere alla fine ti ritrovi senza alcun articolo da visualizzare. Mentre tu vorresti che venissero mostrati 10 articoli delle categorie che ti interessano (ovviamente se presenti).
In questo caso devi far si che la query che alimenta il Loop operi su una base molto più ampia e non estragga il numero di articoli predefiniti da pannello di controllo ma un numero maggiore, al limite tutti, affinche scartando gli articoli delle categorie da nascondere ne rimangano comuqnue da mostrare giusto? Se cosଠil discorso è più complesso.
Devi usare il tag query_posts (vedi wiki) per visualizzare tutti i post nel loop (c’è un parametro apposito) poi ll’interno del Loop usi un contatore per contare quanti post vengono visualizzati ed esci dal Loop al raggiungimento del 10^ articolo ingnorando tutto il resto.
-
9 Marzo 2006 alle 14:05 #37594andryonlinePartecipante
Si credo che adesso ci siamo capiti…
(Se per esempio il Loop mostra 10 articoli, se per caso però i primi 6 articoli appartengono alle categorie che ho nascosto alla fine mi ritrovo 4 articoli)
Adesso proverò ad aiutarmi col wiki per vedere se riesco…
-
10 Marzo 2006 alle 17:05 #37617andryonlinePartecipante
Ho risolto tutto con un solo plugin: “Category Levels v0.3.2”!
-
16 Settembre 2006 alle 0:53 #40084oviPartecipante
Buono buono questo plugin! Mi ha permesso di ovviare a un po’ di cose..
Cmq per scaricarlo andare qui http://www.coppit.org/code/ a fondo pagina!
-
22 Febbraio 2007 alle 11:49 #43595FreeplePartecipante
Ciao a Tutti!
Ho letto con attenzione tutto il Post, descrivete ciò che serve a me. Ho solo due problemi:
- Non ho capito dove e come collocare il codice consigliato, quello provato e che funziona. Mi mandereste, per favore, un file di esempio?
- Leggevo del problema relativo agli “spazi vuoti” per le pagine con articoli nascosti, avete risolto il problena?
Per l’eventuale invio dell’esempio potete trovare la mia email qui: http://www.disabiledoc.it/it/?page_id=5
Grazie di cuore sin da ora, Ciao!
-
22 Febbraio 2007 alle 17:28 #43601FreeplePartecipante
Ciao a Tutti!
Vi chiedo un aiuto, questo codice:
<?php if ( !(in_category('1')) && !(in_category('2')) ) { ?>
Va sostituito a:
<?php if (have_posts()) : ?>
Oppure no?
Barcolllo nella nebbia e prrima di provare vorrei capre u po’ di più …
Grazie di tutto, ciao!
-
22 Febbraio 2007 alle 17:42 #43602
-
22 Febbraio 2007 alle 22:25 #43605SteveAglAmministratore del forum
Scusate, ma nessuno ha provato a mettere
<?php query_posts('cat=-ID1,-ID2'); ?>
prima del Loop?
(testato su una 2.1 e funziona)
-
23 Febbraio 2007 alle 8:14 #43610FreeplePartecipante
Ciao WrBrown!
Io ho ancora la 2.0.8, ma ciò che non ho capito è dove collocare quel codice (il tuo) o quello precedentemente postato. Puoi darmi una dritta?
A presto, ciao!
-
23 Febbraio 2007 alle 10:34 #43611SteveAglAmministratore del forum
lo devi mettere prima del Loop
-
23 Febbraio 2007 alle 11:19 #43613FreeplePartecipante
Ciao MrBrown!
Quindi prima di:
<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
Cosà¬:
<?php query_posts('cat=-ID1,-ID2'); ?>
<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
àˆ corretto?
A presto, ciao!
-
23 Febbraio 2007 alle 14:28 #43617SteveAglAmministratore del forum
si, ma occhio a
ID1
eID2
, devi sostituirli con gli ID delle categorie che vuoi escludere. -
23 Febbraio 2007 alle 15:17 #43622FreeplePartecipante
Ciao MrBrown!
Grazie, mi metto al lavoro …
-
24 Febbraio 2007 alle 9:26 #43629FreeplePartecipante
Ciao MrBrown!
Funzina perfettamente.
Ho solo un problema: le Categorie oltre che dal Loop mi vengono anche escluse dall’elenco categorie nella Sidebar.
àˆ normale?
Se lo è, c’è un modo per farle comparire nellelenco Categorie?
Grazie di tutto, Ciao!
-
24 Febbraio 2007 alle 11:54 #43632FreeplePartecipante
Ciao MrBrown!
Ho un secondo problema.
Non so perché non mi funziona più:
<?php query_posts('cat=-31,-32,-33'); ?>
Mi esclude solo la prima (-31).
Ho provato anche cosà¬:
<?php query_posts('cat=-31,cat=-32,cat=-33'); ?>
Non va.
Hai dei suggerimenti?
Poi non compaiono nella lista delle Categorie come Sotto Categorie di D-Umorismo.
Grazie, a presto!
-
24 Febbraio 2007 alle 14:12 #43634SteveAglAmministratore del forum
non so se funziona, ma potresti provare a fare
<?php $my_query = new WP_Query('cat=-31,-32,-33'); ?>
<?php while ($my_query->have_posts()) : $my_query->the_post(); ?>
qui i tag per mostrare i post
<?php endwhile; ?>
<?php $wp_query = $temp_query; ?>
-
-
AutorePost
- Devi essere connesso per rispondere a questo topic.