- Home
- Categorie
- Coding e Sistemistica
- Gestione di Forum
- [Wordpress] Gestire bene le pagine
-
mhh... ho l'impressione che dovrai mettere mano alle query che fa al database. ha già cercato sul codex (http://codex.wordpress.org) ?
-
Ho visto qui e qui ma non riesco a trovare nel mio template la funzione wp_list_page che penso sia quella sulla quale lavorare
-
di solito sta nella sidebar, o nell'header.php se la lista ce l'hai orizzontale; ma mi rendo conto che è un po' vago, dipende tropo dal template che usi. cerca dentro ai file in tutta la cartella del tema
-
Ok, ho trovato la riga che mi interessa nell'header
<?php wp_list_pages('depth=1&title_li=0&sort_column=menu_order'); ?>
Penso che dovrei inserire il parametro *child_of= *e un ID di pagina. Se metto come ID lo zero mi lista tutte le pagine.
Ma come faccio a sapere l'ID della pagina attuale?Edit: per il child_of vedere qui
-
Gorka scusami ma il tuo blog lo vedo tutto defacciato te ne sei accorto?
-
@dani74 said:
Gorka scusami ma il tuo blog lo vedo tutto defacciato te ne sei accorto?
Io lo vedo bene, cosa hai visto tu?
-
l?ID della pagina lo vedi dal pannello di gestione delle pagine
-
Si Tambu però a me serve dinamico, in modo che pongo *child_of=id_attuale
*Quindi dovrei scoprire come si chiama quella variabile.
-
L'ID dovrebbe essere qui: $wp_query->post->ID
-
Grazie ragazzi, ho risolto con questo pezzetto di codice nell'header
$pagina=$wp_query->post->ID; wp_list_pages('depth=1&title_li=0&sort_column=menu_order&child_of='.$pagina);
Sono soddisfatto però all'80% in quanto con questa soluzioni mi mostra pagine "figlie" e "nipoti" io invece vorrei mostrasse solo il primo livello (quindi solo figli, niente nipoti).
Se riuscissi in quest'ultima cosa sarebbe proprio il massimo, anche se già mi sta bene così.Grazie a tutti
-
strano perché con depth=1 dovrebbe mostrare solo le sottopagine!
in realtà leggendo il codex inglese noto una sfumatura diversa nella descrizione di DEPTH... non capisco se si riferisce alla root o alla pgina in cui si è
-
Adesso non mi funziona di nuovo (nella home page non mi linka la pagina principale), appena ho tempo ci rimetto mano e se risolvo vi faccio sapere.
-
a me il codice:
[php]$pagina=$wp_query->post->ID;
wp_list_pages('depth=1&title_li=0&sort_column=menu_order&child_of='.$pagina);
[/php]
Mostra solo i figli di primo livello della pagina corrente.Nella variabile $wp_query->post->ID c'è l'id della pagina solo se ti trovi in una pagina.
Io non so di preciso cosa vuoi ottenere, se ad esempio vuoi che:
- Se sei in una pagina vedi i figli di 1° livello
- se non sei in una pagina vedi il 1° livello
puoi fare:
[php]$pagina = (is_page()) ? $wp_query->post->ID : 0;
wp_list_pages('depth=1&title_li=0&sort_column=menu_order&child_of='.$pagina);
[/php]
che è come scrivere:[php]if(is_page()){
$pagina=$wp_query->post->ID;
wp_list_pages('depth=1&title_li=0&sort_column=menu_order&child_of='.$pagina);
} else {
wp_list_pages('depth=1&title_li=0&sort_column=menu_order&child_of=0');
}[/php]
-
Spero di avere il tempo di provare pomeriggio, appena lo faccio vi informo
-
salve, io ho utilizzato questi comandi che avete dato.. ho un sol oproblema.. vorrei che l'output fosse col nome della pagina, non con l'id... (che nell'output di wp_list_pages agisse il mod_rewrite per intenderci....) voi avete idea di come fare?io ho cercato un pò in giro ma non ho trovato nulla a riguardo
-
ciao, se definisci un permalink nelle opzioni, anche l'utl delle pagine dovrebbe essere riscritto automaticamente, credo...
-
si, adesso è ok ^__^
-
ciao raga,
io volevo fare in modo di escludere una pagina dalla barra principale ed arrivare a questa tramite un link che ho creato nella sidebar.
sapete come posso fare?
grazie!
-
Finora, l'unica cosa che sembra avere a che fare col mio problema è questo codice nella pagina header
<!-- navigation ................................. -->
<div id="navigation">
<ul>
<li<?php if (is_home()) echo " class="selected""; ?>><a href="<?php bloginfo('url'); ?>">Home</a></li>
<?php
$pages = get_pages();
if ($pages) {
foreach ($pages as $page) {
$page_id = $page->ID;
$page_title = $page->post_title;
$page_name = $page->post_name;
if ($page_name == "archives") {
(is_page($page_id) || is_archive() || is_search() || is_single())?$selected = ' class="selected"':$selected='';
echo "<li".$selected."><a href="".get_page_link($page_id)."">Archives</a></li>\n";
}
elseif($page_name == "home") {"";
}
elseif($page_name == "about") {
(is_page($page_id))?$selected = ' class="selected"':$selected='';
echo "<li".$selected."><a href="".get_page_link($page_id)."">About</a></li>\n";
}
elseif ($page_name == "about_short") {/ignore/}
else {
(is_page($page_id))?$selected = ' class="selected"':$selected='';
echo "<li".$selected."><a href="".get_page_link($page_id)."">$page_title</a></li>\n";
}
}
}
?>
</ul></div>
<!-- /navigation -->Forse è questo che devo modificare?
-
Ciao blaze++, il post è molto datato, ti consiglio di aprire un topic nella sezione dedicata a wordpress: