Archief - syntax error php - Query_posts in wordpress

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

benwake

Legacy Member
Hallo iedereen,

Ik ben me suf aan het zoeken, maar ik blijf een syntax error krijgen.
De nodige uitleg:

Om in wordpress bepaalde posts uit bepaalde categoriën te laten zien, gebruik je deze code (zit in mijn index.php):
PHP:
<?php query_posts('category_name=categoryname&posts_per_page=4'); ?>

In mijn customized admin panel vraag ik de mensen om een categorie naam aan te geven die ik dan op de hoofdpagina wil laten verschijnen:
PHP:
// Ask for category on homepage
array( "name" => "Category home:",
 "desc" => "Enter the name of the category you want to display on the home page",
 "id" => $shortname."_category_home",
 "type" => "text",
 "std" => ""),

Dit werkt allemaal zonder problemen.
Bij een vorig voorbeeld, haal ik de info uit het admin paneel (om die dan te gaan integreren) op die manier, en dat werkt ook:
PHP:
echo $options['category_home']

In de header heb ik ook deze code opdat wordpress zou weten dat hij het in mijn admin panel moet gaan halen:
PHP:
	//get theme options
	$options = get_option( 'theme_settings' ); ?>

Nu probeer ik alles samen en dat geeft mij een fout:
PHP:
<?php query_posts('category_name=echo $options['category_home']&posts_per_page=4'); ?>
-> geef mij alle posts uit de category die in het admin paneel staat onder category_home en geef er 4 weer

De logica klopt, maar de code niet. Kan iemand mij daarbij helpen aub (de laatste lijn dus aub)?

Grtz,
Benwake

Fr3aK

Legacy Member
PHP:
<?php query_posts('category_name='.$options['category_home'].'&posts_per_page=4'); ?>

benwake

Legacy Member
Bedankt voor je antwoord maar spijtig genoeg werkt het niet, hij houd geen rekening met de category, maar wel nog met de posts per page.

Heb de naam al veranderd, werkt ook niet. Zelfs een ID ingeven lukt ook niet :/

Nog suggesties?

Scissor

Legacy Member
Heb wel wat ervaring met customizen van wordpress. Wat wil je juist bereiken?

Edit: als je posts op je frontpagina laat verschijnen is home.php de template waar je mee wil werken, niet index.php.

Dieterg

Legacy Member
@scissor dat is idd zo maar als hij geen home.php heeft zit hij goed in index.php

PHP:
query_posts( array ( 'category_name' => $options['category_home'], 'posts_per_page' => 4) );

Ik weet niet of het veel uitmaakt maar ik doe het zelf altijd op bovenstaande manier. Probeer eens om hardcoded een catogry te tonen. Werkt dat? Post anders uw loop eens? Zit je met meerdere loops op een pagina?

benwake

Legacy Member
voor de eerste keer ben ik een theme from scratch aan het ontwerpen, mijn homepage is in mijn geval index.php.
Op de homepage wil ik 4 posts van een bepaalde categorie.
Die categorie moet je in de options panel van de theme ingeven.

Beide codes heb ik en werken al voor de logo. En dit werkt.
PHP:
<div id="logo">
		<!-- Here comes the logo upload code in the admin panel. If no logo, description-->
			<?php if($options['custom_logo']) { ?>
			<a href="<?php bloginfo( 'url' ) ?>/" title="<?php bloginfo( 'name' ) ?>" rel="homepage"><img src="<?php echo $options['custom_logo']; ?>" alt="<?php bloginfo( 'name' ) ?>" /></a>
			<?php } else { ?>
			<h2><a href="<?php bloginfo( 'url' ) ?>/" title="<?php bloginfo( 'name' ) ?>" rel="homepage"><?php bloginfo( 'name' ) ?></a>
			<?php } ?>
		
	</div>

Als je meer info nodig hebt laat je maar iets weten :)

@Mam -> jouw code werkt spijtig genoeg ook niet. Hardcoded lukt wel daarentegen. Complete code:
PHP:
  <?php query_posts( array ( 'category_name' => $options['category_home'], 'posts_per_page' => 4) );  ?>

  <?php while (have_posts()) : the_post(); ?>


		<div class="posthome" id="post-<?php the_ID(); ?>">
		
			<div class="thumbnail">
			<?php
					if (has_post_thumbnail()) {  
					the_post_thumbnail(
					array(  
					'class' => 'thumbnail',  
					'alt' => 'post thumbnail', ) 
					);  } ?>		
			</div>

			<h2><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a></h2>

			<?php the_excerpt();?>
		</div>	
		
		<?php endwhile; ?>

Dieterg

Legacy Member
En als je vlak boven query_posts eens een echo $options['category_home'] doet. Zit daar dan iets in? Want als het hardcoded wel werkt.. Dat is wel straf..

Scissor

Legacy Member
Waarom maak je daar btw een custom category voor? Als je in je thema al standaard een category steekt die je op je index publiceert, kan je als gebruiker gerust je post altijd die category meegeven, zeker omdat je meerdere category kan meegeven...?

Geef gewoon duidelijk mee in je custom admin panel dat de user een category moet aanmaken "frontpage_post" ofzo en alles opgelost?

benwake

Legacy Member
Heb de echo getest die werkt wel.
Maar aan de Default Post Category in settings-writing had ik niet gedacht.
Als ik dit aanpas werkt het nog altijd niet, iemand een idee? Welke loop gebruik ik dan het best om mijn posts te tonen en te limiteren op 4?

Scissor

Legacy Member
Settings > Reading >

Blog pages show at most 4 posts?

of

query_posts( 'posts_per_page=4' );

benwake

Legacy Member
ja dat doet hij wel, maar hij neemt de categorie niet uit settings-writing-default post category :-/ Als ik daar van af ben is het in orde :)

benwake

Legacy Member
plugins gebruik ik liever niet. Ik wil echt de theme volledig zelf maken from scratch. Met plugins is het te gemakkelijk :) Dan leer ik ook niets bij, kan ik even goed bestaande themes blijven customizen...
Ik zal nog wat blijven zoeken, waarschijnlijk is er een fout ergens in de code. Zit er me nu suf op te zoeken.

Scissor

Legacy Member
Mja, los daarvan vind'k het ook niet echt een goed idee om een theme te maken waarvan je persé slechts 4 posts wil laten zien. Je posts zijn dan ook aangepast naar woord-lengte? Want ik vermoed dat de reden dat je slechts 4 posts wil, iets met je layout te maken heeft?
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan