Hallo Michael,
Dat is redelijk eenvoudig! Ik neem aan dat je zelf aan het programmeren kunt in jouw templates of functions.
Ik zou ervoor kiezen de gridview altijd op te roepen tenzij er dus een cookie is gezet.
een klein voorbeeldje:
<?php
if($_COOKIE['list'] == "list"){
//toon de listversie
}else{
//toon de gridversie
}
?>
om de cookie te zetten doe je het volgende:
dit zijn de twee knoppen boven jouw lijst:
<a href="jouwdomeinnaam/lijst/?list=grid" target="_self">Gridvieuw</a>
<a href="jouwdomeinnaam/lijst/?list=list" target="_self">Listview</a>
in dan zet je in de php het volgende:
<?php
if($_GET['list'] == "list" && !isset($_COOKIE['list'])){
//we gaan de cookie zetten
setcookie("list", "list", time()+3600);//verloopt in 1 uur
}
if($_GET['list'] == "grid" && isset($_COOKIE['list'])){
//we gaan de cookie verwijderen
setcookie("list");
}
?>
Zoiets?
Hi Julian,
Cool! Bedankt voor je antwoord.
Idee is inderdaad dat de gridview default is, maar dat de gebruiker middels een button voor listview kan kiezen.
Ik kom doorgaans een heel eind met zelf themes bouwen, maar dit had ik nog niet eerder geprobeerd en kon er ook net echt een duidelijke tutorial voor vinden.
Dus nogmaals bedankt en ik ga er mee aan de slag.
Kan zijn dat ik je nog een keertje lastig val als ik het niet aan de praat krijg π
Groeten,
Michael
Prima! Als je vragen hebt dan hoor ik het wel!
Groet,
Geert
Hi Geert,
Heb toch nog een vraagje, waar neem ik dit stuk code in op?
<?php
if($_GET['list'] == "list" && !isset($_COOKIE['list'])){
//we gaan de cookie zetten
setcookie("list", "list", time()+3600);//verloopt in 1 uur
}
if($_GET['list'] == "grid" && isset($_COOKIE['list'])){
//we gaan de cookie verwijderen
setcookie("list");
}
?>
Ik heb het nu in header.php staan in de <head>? Maar dat werkt niet.
Zie ook niet terug in dev tools van Chrome dat de cookie gezet is.
Kun je me nog iets verder op weg helpen?
Thnx
Michael
geen probleem!
Een overzicht van posts wordt gemaakt in de Loop deze kun je 9 van 10 keer terug vinden in de index.php in jouw theme mapje.
Misschien kun je de code van de index.php even hier posten dan kijk ik er even naar!
Geert
Ok dit is hoe ik de if-else statement in index.php gebruik
<?php
/**
* Default template file
*
* All of WordPress defaults back to index.php. This is the main blog page.
*
*/
?>
<?php get_header(); ?>
<div id="index">
<div id="content-wrapper">
<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
<?php
if($_COOKIE['list'] == "list"){
//toon de listversie
get_template_part( 'loop', 'bloglist' );
}else{
//toon de gridversie
get_template_part( 'loop', 'bloggrid' );
}
?>
<?php endwhile; ?>
<!-- includes next previous links or post level nav -->
<?php locate_template( array( 'assets/includes/post-navigation.php' ), true ); ?>
<?php else : ?>
<h2>Not Found</h2>
<p>Sorry, but you are looking for something that isn't here.</p>
<?php get_search_form(); ?>
<?php endif; ?>
</div><!-- /#content-wrapper -->
<?php get_sidebar(); ?>
</div><!-- /#index -->
<?php get_footer(); ?>
Ik heb dus 2 aparte loops die afhankelijk van de cookie geladen moeten worden.
Maar zou ik dan het stukje
<?php
if($_GET['list'] == "list" && !isset($_COOKIE['list'])){
//we gaan de cookie zetten
setcookie("list", "list", time()+3600);//verloopt in 1 uur
}
if($_GET['list'] == "grid" && isset($_COOKIE['list'])){
//we gaan de cookie verwijderen
setcookie("list");
}
?>
ook in de index.php moeten opnemen?
Bedankt voor je tijd/hulp
Probeer dit eens:
<?php
/**
* Default template file
*
* All of WordPress defaults back to index.php. This is the main blog page.
*
*/
?>
<?php get_header(); ?>
<div id="index">
<div id="content-wrapper">
<a href="jouwdomeinnaam/lijst/?list=grid" target="_self">Gridvieuw</a> |
<a href="jouwdomeinnaam/lijst/?list=list" target="_self">Listview</a>
<?php
if($_GET['list'] == "list" && !isset($_COOKIE['list'])){
//we gaan de cookie zetten
setcookie("list", "list", time()+3600);//verloopt in 1 uur
}
if($_GET['list'] == "grid" && isset($_COOKIE['list'])){
//we gaan de cookie verwijderen
setcookie("list");
}
if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
<?php
if($_COOKIE['list'] == "list"){
//toon de listversie
get_template_part( 'loop', 'bloglist' );
}else{
//toon de gridversie
get_template_part( 'loop', 'bloggrid' );
}
?>
<?php endwhile; ?>
<!-- includes next previous links or post level nav -->
<?php locate_template( array( 'assets/includes/post-navigation.php' ), true ); ?>
<?php else : ?>
<h2>Not Found</h2>
<p>Sorry, but you are looking for something that isn't here.</p>
<?php get_search_form(); ?>
<?php endif; ?>
</div><!-- /#content-wrapper -->
<?php get_sidebar(); ?>
</div><!-- /#index -->
<?php get_footer(); ?>
Wel even de url’s aanpassen he! (jouwdomeinnaam/lijst/?list=grid)
π Yep.
Thanks ga even kijken of dit ‘m aan de gang krijgt.
Dank voor je hulp.