2017-07-04 3 views
0

Ich habe eine Frage ich bin beschäftigt mit einem Filter innerhalb von WordPress. Jetzt habe ich ein Problem, das ich versuche zu erklären.

Wenn ein Besucher eine "single merk" URL auswählen wird? Merk = Brand1 und als Option 2 ist dann "Soort" als die URL wird "? Merk = Brand1 & soort = Soort1" das funktioniert.

Aber wenn Sie beide haben wählen, als nur ändern wollen? Merk = brand2 als die URL ist „? Merk = brand2 & soort = Soort1 & merk = Marke1“ wie kann ich es machen, wenn Sie zwischen dem „merk wechseln "Das" Brand1 "ersetzt" Brand2 ". Hier

ist der Code:

  foreach ($allemerken as $merksingle) { ?> 
       <?php if(isset($_GET['merk']) && $_GET['merk'] == $merksingle->slug){?> 
       <a href="<?php echo $current_url; ?>" class="filter_merklink active"><i class="fa fa-times" aria-hidden="true"></i> <?php echo $merksingle->name; ?></a> 
       <?php }else{ ?> 
       <a href="<?php echo $current_url; ?>?merk=<?php echo $merksingle->slug;?><?php if(isset($_GET['soort']) && $_GET['soort'] != ''){ echo '&'.$_SERVER['QUERY_STRING'];} ?>" class="filter_merklink"><?php echo $merksingle->name; ?></a> 
       <?php }?> 
      <?php }?> 
      <p class="mt-30"><strong>Soort:</strong></p> 
      <?php 
      $soorten = get_terms('warmtepompcategorie');   
//   echo '<pre>'.print_r($allemerken,true).'</pre>'; 
      foreach ($soorten as $soort) { ?> 
       <?php if(isset($_GET['soort']) && $_GET['soort'] == $soort->slug){?> 
       <a href="<?php echo $current_url; ?>" class="filter_merklink active"><i class="fa fa-times" aria-hidden="true"></i> <?php echo $soort->name; ?></a> 
       <?php }else{ ?> 
       <a href="<?php echo $current_url; ?>?soort=<?php echo $soort->slug;?><?php if(isset($_GET['merk']) && $_GET['merk'] != ''){ echo '&'.$_SERVER['QUERY_STRING'];} ?>" class="filter_merklink"><?php echo $soort->name; ?></a> 
       <?php }?> 
      <?php }?> 

Ps. Entschuldige mein schlechtes Englisch, aber hoffe, dass mir jemand helfen kann!

Antwort

0

Um die Werte von Duplizieren zu verhindern ich auf einem $_GET Array oder seine Kopie zum Hinzufügen oder Entfernen der Parameter wie funktionieren würde:

$_GET['soort'] = 'new value'; // adding, modifying value 
unset($_GET['soort']); // removing value 

und dann mit http_build_query() für den Aufbau der URL-kodierten Query-String wie folgt aus :

$query = http_build_query(array('aParam' => $data)); 
0

Ich habe eine Funktion gemacht. Und ich tat es so:

function replace_get($newname,$newvalue){ 
    $oldvars = $_GET; 
    $varsnew = $newname.'='.$newvalue; 
    foreach($oldvars as $name=> $value){ 
     if($name != $newname){ 
      $varsnew .= '&'.$name.'='.$value; 
     } 
    } 
    return $varsnew; 
} 
Verwandte Themen