Avatar billede jannodl Nybegynder
29. marts 2009 - 12:28 Der er 13 kommentarer og
1 løsning

php if funktion i wordpress

Hej Alle

Dette er min første post, så bær over nmed mig hvis jeg spørger dumt, er ikke php haj. Men forsøger at blive bedre, da jeg synes det er et fantastisk scriptsprog.

Jeg har et cms system på en af mine sider hvor jeg benytter if funktionen til at definere sidetyperne såsom i en bestemt category eller bare forsiden ved i php-delen af mine templates at definere eksempelvis:

$this->ishome = 1;

og så kalde if der hvor jeg eksempelvis vil have et banner der kun kommer på forsiden på følgende vis:

{if $this->ishome}
Det jeg vil indsætte her
{/if}

Den funktion har jeg prøvet at få til at virke i min wordpress template, og jeg har indsat følgende i min wp-template index.php uden at få fejl:

<?php $this->ishome = 1; ?>

Men når jeg søger at kalde if i en anden del eks. footer.php løber jeg hele tiden ind i parse errors.

Jeg har prøvet mange koder, her er et eksempel:

<?php if $this->ishome (det jeg vil have indsat) ?>
<?php endif; ?>

Er der en ekspert der kan forklare det?
Jeg formoder at det kan virke her osse, men jeg gør øjensynligt noget forkert, og kan ikke løse det selv så ville være taknemmelig for lidt assistance...

Mange hilsner en php-rookie
Janno
Avatar billede larsettrup Nybegynder
29. marts 2009 - 13:07 #1
Hej Janno,

Umiddelbart ville jeg skrive:

if ($this->ishome == "1") {
echo "mit banner";
}

Men jeg er ikke nogen haj. Prøv.

Lars
Avatar billede jakobdo Ekspert
29. marts 2009 - 13:21 #2
Og jeg ville nok bare lave:

if ($this->ishome) {
echo "mit banner";
}

Er i dog sikker på ishome ikke er en funktion, og skal kaldes:

$this->ishome() ?
Avatar billede jannodl Nybegynder
29. marts 2009 - 16:56 #3
Hmmm...

Har nu prøvet utallige kombinationer, og kan ikke rigtigt få det til at spille som jeg ønsker...

Haj efterlyses :)

Janno
Avatar billede jakobdo Ekspert
29. marts 2009 - 20:39 #4
Hvad jeg kan se, så tror jeg du skal bruge:

if($this->is_home()){
echo 'Vis banner';
}
Avatar billede jannodl Nybegynder
29. marts 2009 - 22:47 #5
Hej Jacob

Nu er jeg ikke er den skarpeste php kniv i skuffen, så måske du kunne komme det lidt nærmere... Hvor skal jeg bruge det?

Jeg skal vel holde fast i at definere i index.php hvad der er home, eller hvordan fungerer det?
Og skal jeg så bruge den kode du skriver til at kalde mit banner?
Det handler nu om nogle links jeg gerne vil have i footeren, men kun på forsiden, og ikke et banner hvis du forstår?

Måske hvis du bruger pap og en kniv og skærer det ud for mig, for jeg kan ikke få det til at virke, der er konstant en eller enden form for parse error...

det du skriver virker ikke, den melder sådan her tilbage:
Call to a member function on a non-object

Og det gider vi ikke...
Avatar billede jakobdo Ekspert
30. marts 2009 - 10:56 #6
I wordpress, der er funktionen: is_home() netop svaret på om en given side, er forside eller ej.

Derfor bør du blot kunne kalde:

$wordpress_objektet (muligvis $this) -> is_home()

ala:

if($this->is_home()){
echo '<img src="banner.jpg" alt="banner" />';
}
Avatar billede jannodl Nybegynder
30. marts 2009 - 12:32 #7
Nu har jeg sat koden ind nederst i footeren, og det virker ikke...

Se selv her: www.jannodl.dk

Allernederst kommer en fatal error jeg ikke forstår, og den kommer ikke kun på forsiden, den kommer på alle siderne... underligt...
Avatar billede jakobdo Ekspert
30. marts 2009 - 20:33 #8
Har fundet følgende side: http://codex.wordpress.org/Conditional_Tags#Working_Examples

Og der ser jeg, at følgende bør virke:

if(is_home()){
  echo '<img src="banner.jpg" alt="banner" />';
}
Avatar billede jannodl Nybegynder
30. marts 2009 - 20:47 #9
Hej Jacob

Jubiii... det virker...
Jeg takker, bukker og skraber :)

Du er min nyeste bedsteste php guru... lol

Tusind tak for indsatsen, jeg var ellers ved at opgive ideen.

Jag skal huske dig i den gode del af min aftenbøn, og altså ikke i den der med "fri mig fra det onde..." hehe

Hav en dejlig aften og glæd dig over at du har gjort en anden mand glad...
Hvor er forums en vidunderlig ting når man søger løsninger...

Janno
Avatar billede jakobdo Ekspert
30. marts 2009 - 20:51 #10
Hej Janno,
godt jeg kunne hjælpe.
Du får et svar.
Avatar billede jannodl Nybegynder
30. marts 2009 - 20:57 #11
Betaling tildelt

Sjovt med et pointsystem, det har jeg ikke set før...

Snakkes ved næste problem :)
Avatar billede jakobdo Ekspert
30. marts 2009 - 21:07 #12
Tjek og tak for point.
Ja sådanne point burde sgu kunne bruges på noget.
Vi vil have en ekspert-shop.
100.000 point = happy meal. :o)
Avatar billede jannodl Nybegynder
30. marts 2009 - 21:19 #13
Kiggede lige på din profil?

Hedder du Damgaard Olsen?
Jeg hedder skægt nok Damgaard Lassen...

Pudsigt
Avatar billede jakobdo Ekspert
30. marts 2009 - 21:54 #14
Jakob Damgaard Olsen ja, det er mig.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester