Löysin kyllä https://wordpress.stackexchange.com/questions/169306/check-if-is-on-child-page-of-a-particular-page
if ( 123 == $post->post_parent ) {
mutta ”post” viittaa yleensä artikkeleihin. Mutta haluaisin sen liittyvät muihin sivuihin myös.
Mitä artikkeleihin tulee, saattaisin kaivata ehtoa, jolla saisi CSS:n määritelty kategorian perusteella. Se ainakin löytynee.
Kun luin
is_category( ’9’ )
When the archive page for Category 9 is being displayed.
Tarkoittaako tuo, että toimii vain ns. arkistosivujen yhteydessä kun selataan artikkeleja www-osoitteessa näkyy artikkelin nimi?
En voi käyttää www-osoitetta, sillä siinä kategoria ei näy.
Toki voihan sitä etsiä neulaa heinäsuovasta -periaatteella www-osoitteen perusteella stristr()-funktiolla, mutta selkeä ehto olisi kätevämpi
Laitoin www-osoitteen perusteella tietyt sivut, mutta esim.
https://www.sanaristikkofoorumi.net/wordpress/ristikkoapuneuvoja/ kaipaisi kategoriamäärittelyä.
-
Tätä vastausta muokkasi 4 vuotta, 8 kuukautta sitten tapiohuuhaa.
$post->post_parent==0 ei tee ehtoa käytännössä ollenkaan vaan vaikuttaa kaikkiin sivuihin. Ei oikein millään saa sopivia ehtoja.
-
Tätä vastausta muokkasi 4 vuotta, 8 kuukautta sitten tapiohuuhaa.
Kaikki WordPressin artikkelit ovat posteja, ihan sivutyypistä riippumatta – myös sivut. Tavallisella artikkelilla ei kuitenkaan ole tuota lapsi-vanhempi-hierarkiaa, oletusartikkelityypeistä se on vain pageilla.
Eli juurikin tuo if ( 123 === $post->post_parent )
on oikea muoto.
if ( 0 === $post->post_parent )
puolestaan osuu kaikkiin niihin juttuihin, joilla ei ole määriteltyä vanhempaa, eli esimerkiksi kaikkiin post-tyyppisiin artikkeleihin.
is_category( '9' )
on tosi silloin kun ollaan kategorian 9 arkistosivulla (joko kategoriassa, jonka ID-numero on 9, tai jonka nimi on ’9’). Jos haluat tarkistaa, onko nykyinen artikkeli kategoriassa 9, silloin käytetään in_category( 9 )
.
Koska mukaan piti saada myös päätason lähtösivu, $post->post_parent ei olisi käyttökelpoinen, joten päätason sivut pitää joka tapauksessa laittaa www-osoitteen perusteella. Mutta kun yritin artikkeleja laittaa
$howAlt=$ristikot || $ra0 || in_category(0);
in_category(0) ei toiminut. Ymmärtääkseni oletuskategoria on 0. Kokeilin myös 1.
Nimi ei auttanut myöskään:
$howAlt=$ristikot || $ra0 || in_category(’Ristikot’);
Kaikki artikkelit piti määrittää erikseen www-osoitteen perusteella, esim.
$ra1=stristr($currentUrl=’https://’ . $_SERVER[’HTTP_HOST’]. $_SERVER[’REQUEST_URI’],’/wordpress/parhaimmat-ja’);
-
Tätä vastausta muokkasi 4 vuotta, 8 kuukautta sitten tapiohuuhaa.
-
Tätä vastausta muokkasi 4 vuotta, 8 kuukautta sitten tapiohuuhaa.
Oletuskategoria ei ole nolla, vaan 1.
Jotta in_category()
toimii ilman toista parametriä, sen pitää olla Loopin sisällä. Jos ei ole, pitää määritellä toisena parametrinä tarkistettavan artikkelin ID-numero.
Kiitti. Tuo selitti asian. Ei maksa vaivaa tarkoitukseeni, kun sivuja on kymmenkunta. Silmukoita ei ole moneen vuoteen tullut laadittua, joten pitäsi opetella ne osittain uudestaan.