Bejárat > PHP programozás > WordPress menü kikapcsolása

WordPress menü kikapcsolása

wordpress-logoA WordPress tartalomkezelőt használók bizonyára tudják, vagy már észrevették, ha létrehoznak egy új oldalt akkor az autómatikusan bekerül a menüben. Ez néha nem túl esztétikus, mert elcsúszik a menü, vagy mert egyszerűen nem akarjuk, hogy megjelenjen a menüben az új oldalunk. Néhány téma már gondol erre a funkcióra, azonban vannak még old wordpress témák, amelyek kicsit le vannak maradva. Ezen bejegyzésem egy wordpress menü hookot mutat be.

Első lépésben hozzunk létre a blogunkban egy új oldalt, ez az oldal egy szülő oldal lesz. Tartalma tetszőleges. Az ő neve legyen a Szülő.
Ez után hozzunk létre még egy új oldalt (Tartalmi oldal 1), ennek az oldalnak a tartalma már formázható, úgy ahogy akarjuk. Szülő oldalnak
az első lépésben létrehozott ‘Szülő’ oldalt adjuk meg.
Hozzunk létre még egy tartalmi oldalt (Tartalmi oldal 2), szintén szülőnek a Szülő oldalt állítsuk be.

Most van egy struktúrán amely a következő:
Blog
Szülő
—>Tartalmi oldal 1
—>Tartalmi oldal 2

Most tüntessük el a menüből úgy a Szülő oldalt, hogy lépjünk be a szerkesztésbe és a láthatóságot tegyük magánjellegűre. (De csak a szülőnél)
Ezek után a Tartalmi oldal 1-2 elvileg nem látható a menünkben, de csak akkor, ha Jó témánk van.
Ha rossz wordpress témánk van, akkor tegyük a következőt:
Nyissuk meg a témánk Header.php fájlát (wp-content/themes/témánk/Header.php)
Keressük meg ezt a sort:
< ? php wp_list_pages('title_li=); ? >
Ez állítja elő a menünket.
Na de most jön a mi kis php kódunk amely autómatikusan kiválasztja mely menüpontok ne jelenjenek meg a menüben. Függőben attől, hogy a szülő oldal láthatósága milyen.
A wp_list_pages(‘title_li=); sort töröljük ki és helyébe kerüljön a következő:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
            //Egy ki mókolás. Mysql kód, így mely oldalak magánjellegűek, azokat kiszűri! 
            $ex = "";
            $sql = mysql_query("SELECT * FROM wp_posts WHERE post_type='page' and post_parent!=0");
            while($adat = mysql_fetch_object($sql)){
                $sql_1 = mysql_query("SELECT count(id) as szam FROM wp_posts WHERE id='".$adat->post_parent."' and post_status='private'");
                $adat2 = mysql_fetch_object($sql_1);
                if($adat2->szam>0){
                    $ex.=','.$adat->ID;
                }
                $adat2 = array();
            }
           $ex = substr($ex,1,strlen($ex));
            //echo $ex;
 
            ?>
	<?php wp_list_pages('title_li=&exclude='.$ex ); ?>

Mindezt kézzel is megtehetjük:

1
<?php wp_list_pages('title_li=&exclude=1,2,3' );  ?>
  1. Még nincs hozzászólás
  1. Még nincsenek visszakövetések