Support » Kokeneille käyttäjille » CSS emosivun perusteella

  • Onko olemassa jotain funktiota, jolla voisi selvittää jonkin alasivun emosivun. Joissakin tilanteissa olisi kiva luoda emosivuun perustuvaa CSS:ää. Ajatus olisi siirtää blogisivusto foorumisivustolle, mutta blogiosiolle pitäisi saada oma header-kuva.
    Sivukohtainen listaus page-id-xxx on jotensakin työlästä. Haluasin

    if(is_parent()==123) {
    add_action( ’wp_head’, function () { ?>
    <style id=”blogi”>…

Esillä 6 vastausta, 1 - 6 (kaikkiaan 6)
  • 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 1 kuukausi, 3 viikkoa 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 1 kuukausi, 3 viikkoa 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 1 kuukausi, 3 viikkoa sitten  tapiohuuhaa.
    • Tätä vastausta muokkasi 1 kuukausi, 3 viikkoa 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.

Esillä 6 vastausta, 1 - 6 (kaikkiaan 6)
  • You must be logged in to reply to this topic.