Autor Zpráva
czudy
Profil
Dobrý den, v php se neorientuji, potřeboval bych aby se mi při různých ID střídalo background-image, za odpovědi děkuji.
Jde mi hlavně o to, je-li ten kousek php napsán správně a jak je to s tím id, protože web mám na wordpressu a nevim jestli si to tímhle způsobem najde id kategorií.
css je pro rameček hlavních kategorií inzerce

<html>
  <head>
    <style>
      p.maincategoryclass {
  background-image: url('<?php
  $id = get_the_category($post->ID);

if($id ==1){
    print '<img src="/uploads/logo.png">';
}
if ($id ==2){
    print '<img src="/uploads/car.png">';
}
if ($id ==3){
    print '<img src="/uploads/van.png">';
}
    
?>');
  background-repeat: no-repeat;
  background-color: #fffacd; 
  text-align:center;
  padding-bottom:10px;
  padding-top:10px;
  margin: 0 0 3px 0;
  height: 30px;
}
      </style>
  </head>
Jan Tvrdík
Profil
czudy:
Takhle to pochopitelně nemůže fungovat. Do zápisu background-image se nedává tag <img>.
<?php
$id = get_the_category($post->ID);
$logos = array(1 => 'logo.png', 2 => 'car.png', 3 => 'van.png');
$logoUrl = isset($logos[$id]) ? $logos[$id] : 'logo.png';
?>
<html>
  <head>
    <style>
      p.maincategoryclass {
          background-image: url('/uploads/<?php echo $logoUrl; ?>');
          background-repeat: no-repeat;
          background-color: #fffacd; 
          text-align:center;
          padding-bottom:10px;
          padding-top:10px;
          margin: 0 0 3px 0;
          height: 30px;
      }
      </style>
  </head>
Davex
Profil
Slušná šablona ve Wordpressu dává do nějaké třídy ID kategorie, takže by mělo stačit předefinovat obrázek jen v CSS.

p.maincategoryclass {
  background-image: url('/uploads/logo.png');
  background-repeat: no-repeat;
  background-color: #fffacd; 
  text-align:center;
  padding-bottom:10px;
  padding-top:10px;
  margin: 0 0 3px 0;
  height: 30px;
}
.category-car p.maincategoryclass {
  background-image: url('/uploads/car.png');
}
.category-van p.maincategoryclass {
  background-image: url('/uploads/van.png');
}
Kubo2
Profil
czudy:
Nechce sa mi teraz veľmi zisťovať, čo vracia funkcia get_the_category() vo WP, ale ak budeme predpokladať, že vracia ošetrený názov kategórie s daným id-čkom ako string, dalo by sa to celkom jednoducho urobiť aj takto:
<?php
@ini_set('short_open_tag', 'On');
$id = get_the_category($post->ID);
$logosPath = '/uploads/'; // !! musíš zmeniť podľa seba, toto je len náčrt
$logoCurrent = !file_exists(($path = $logosPath . $id . '.png')) ? $logosPath . 'default.png' : $path;
?>
<html>
  <head>
    <style>
      p.maincategoryclass {
          background-image: url('<?=$logoCurrent?>');
          /* tvoj ostatný CSS kód */
      }
      </style>
  </head>
<?php @ini_set('short_open_tag', 'Off'); ?>
Potom by si musel mať vytvorené univerzálne logo default.png kvôli situácii, že by si pre nejakú kategóriu ešte logo nemal, a zároveň logá pomenované ošetrenými názvami kategórií:

Názov kategórie · Názov loga
1. Kočičky · kocicky.png
2. Psíčkovia a vlci · psickovia-a-vlci.png
3. ...atď.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: