Wil je je tags net zo weergeven als op veel stockfoto websites? Met andere woorden: een checkbox voor elke tag en de aangevinkte tags gebruiken als zoekwoorden. Dat kan!
Waar je van tevoren wel rekening mee moet houden: Shopp zoekt momenteel nog niet in de tags die zijn toegewezen aan een product (alleen titel, omschrijving en inhoud). Om er dus voor te zorgen dat de zoekwoorden ook op de tags werken (lees: resultaten oplevert met producten die ook die tag(s) hebben) zou je de tags in de omschrijving (summary) kunnen zetten als tijdelijke work-around (het doorzoeken van ook de tags wordt waarschijnlijk vanaf v2.0 beschikbaar). ![]()
Code voor je functions.php
Okee, we voegen de volgende code toe aan de functions.php van je theme:
<?<a title="Zie ook Code in posts hersteld" href="http://hiranthi.nl/wordpress/code-in-posts-hersteld/">php</a>
if ( isset($_GET['s']) && is_array($_GET['s']) ) { $_GET['s'] = implode(' ', $_GET['s']); }
?>Bovenstaande code zorgt ervoor dat de array ‘s’ (de zoekwoorden v/d tags) wordt omgezet naar een string. Dus in plaats van allemaal kleine stukjes genaamd ‘s’ (waarvan de inhoud verschillend is) wordt het een stuk genaamd ‘s’ waar alle kleine stukjes inzitten als geheel.
Code voor je product.php
Dan de code die er voor zorgt dat je een checkbox bij elke tag krijgt en ervoor zorgt dat je de geselecteerde tags kunt gebruiken als zoekwoorden:
<?php
if(shopp('product','has-tags'))
{
?>
<form method="get" action="<?php bloginfo('url'); ?>">
<input type="hidden" name="st" value="shopp" />
<ul><?php
while(shopp('product','tags')) // while-loop om alle tags 1 voor 1 door te lopen
{ ?>
<li><label for="<?php shopp('product','tag'); ?>">
<input type="checkbox" name="s[]" value="<?php shopp('product','tag'); ?>" id="<?php shopp('product','tag'); ?>" /> <?php shopp('product','tag'); ?></label></li>
<?php } ?></ul>
<input type="submit" value="Zoeken" />
</form>
<?php
}
?>Bovenstaande code plak je in product.php (van je Shopp custom templates) op de plek waar je de tags weer wilt geven.



Recente reacties