Thread: Wordpress queries
-
12-03-2012, 13:41 #1
Wordpress queries
Ahoi,
even een sitrep:
Ben aan een website bezig vr een scoutsgroep die vrij aanpasbaar moet zijn (nieuwsposts, kalender, scoutsboekje online smijten, foto's,...).
'k Heb 'm atm zo opgesteld dat'k zelf de site in html/css maak, vervolgens m'n index in php zet. In die index roep'k de data van een wordpress die in dezelfde dir geïnstalleerd staat op. Op die manier kunnen zij via de wordpress alles heel makkelijk aanpassen, maar ziet de website er nog wel altijd niet uit als een wordpress site. Ben nu net wat aan het strugglen om de juiste manier te zoeken om de specifieke data op te vragen. Mijn kennis php is vrij beperkt, maar moest iemand hier ervaring mee hebben, 's naar willen kijken?
Hiermee laad'k m'n wordpress in, maar die query zou nog anders moeten. 'k Zou graag willen selecteren op category, 't aantal posts bepalen en selecteren op pagina.
<?php
// Include WordPress
define('WP_USE_THEMES', false);
require('./wordpress/wp-load.php');
query_posts('showposts=1');
?>no votes
-
-
12-03-2012, 17:45 #2Approved 9-lifer
- Registered
- 08/01/05
- Location
- Turnhout
- Posts
- 1,182
- iTrader
- 0
- Mentioned
- 0 Post(s)
- Reputation
- 9/9
Ik denk dat u de werking van wordpress een beetje uit het oog bent verloren. In wordpress is het namelijk zo dat je verschillende soorten pagina's hebt.
De wordpress codex is heel uitgebreid en daar zal je alle info vinden die je nodig hebt. Als je zegt dat je PHP kennis beperkt is zul je deze toch een beetje moeten bijschaven (niet dat je echt PHP moet kennen om een theme te maken, je kan veel kopiëren van het standaard theme).
Lees ook zeker volgend artikel eens door: Templates « WordPress Codex
Dit is dus wat ik bedoel, in wordpress heb je een category page en selecteren op pagina kan je via page.php. Dan gebeurt dit allemaal automatisch en moet je u geen zorgen maken over uw query.'k Zou graag willen selecteren op category, 't aantal posts bepalen en selecteren op pagina.-no votes
-
12-03-2012, 17:58 #3Member
- Registered
- 22/06/10
- Location
- Muizen (Mechelen)
- Posts
- 286
- iTrader
- 4 (100%)
- Mentioned
- 0 Post(s)
Kan je niet gewoon een connection file aanmaken en dan kan je je tabellen toch gebruiken?
Zonder verder iets speciaals van Wordpress te kennen...no votes
-
12-03-2012, 18:03 #4
Mja, 't probleem is dat absolute computerleken het moeten kunnen aanpassen. Daarom dat'k probeer om toch alles via wordpress te integreren, zodat het achteraf makkelijk bruikbaar is.
'k heb dus al een nieuwspagina kunnen opzetten waar'k telkens 3 posts van de categorie nieuws in laat zien die'k uit wordpress haal, door simpel het volgende toe te voegen:
<?php query_posts('category_name=nieuws&showposts=3'); ?>
<?php while ( have_posts() ) : the_post(); ?>
<?php get_template_part( 'content', 'page' ); ?>
<?php endwhile; ?>
So far, so good. Nu laat hij enkel de titel zien en de post zelf, mooi in de stijl van m'n pagina. Nu ben'k nog beetje aan't prullen om een overzichtje te krijgen van posts etc., kalender te integreren en picasa te integreren. Allemaal een beetje omslachtig, maar op die manier kunnen zij later gewoon alles heel makkelijk ingeven. 'k Vroeg me nu gewoon af of iemand veel ervaring heeft met op die manier te werken. Er kruipt echt veel tijd + trial en error in om de juiste php code te vinden.no votes
-
12-03-2012, 18:12 #5Approved 9-lifer
- Registered
- 08/01/05
- Location
- Turnhout
- Posts
- 1,182
- iTrader
- 0
- Mentioned
- 0 Post(s)
- Reputation
- 9/9
Zoals ik al gezegd heb, lees die link die ik gepost heb eens door.. Maak je nu gebruik van verschillende templates?
Ik zal u even op weg helpen. Kopieer index.php en noem deze file category.php. Voeg daar die filter toe enkel met showposts=3. Want die category_name wordt automatisch gefilterd als je op een category link duwt.
En waarom die filter showposts=3? Is het de bedoeling dat de gebruiker maar 3 posts van een bepaalde category kan zien? Zo'n filter kan handig zijn in een widget ofzo? Toch niet op uw main category page.. Zeker dat je pagination niet bedoelt?-no votes
-
12-03-2012, 18:16 #6
Om site-layout etc. wat overzichtelijk te houden (en ook omdat er nauwelijks nieuws gepost wordt) beperk ik de posts tot 3, om enkel het 'recente' nieuws te tonen.
Er zijn ook nog andere pagina's binnen de website waar specifiek nieuws over verschillende takken kan gepost worden. Op die manier moeten de mensen die iets posten gewoon hun category aanpassen en verschijnt hun nieuwsbericht op de juiste pagina, aangezien ik enkel specifiek nieuws opvraag van een category.
Aan pagination waag'k me atm nog niet, aangezien'k lees dat daar toch redelijk wat problemen/moeilijkheden mee zijn. Op dit ogenblik ziet de wordpress er dus uit als gewoon een standaardpagina met nieuwsposts op, maar dat maakt niet uit want de wordpresspagina krijgt niemand te zien. Enkel de posts die erop gemaakt worden en die worden naar layout toe gestyled door de css van m'n pagina. Heb die link al grondig bestudeerd, maar grote delen zijn nog chinees voor mij.
Edit: voor de duidelijkheid. Mijn hoofdsite is niet de wordpress-site. De wordpress-site gebruik ik enkel om op een user-friendly manier data te laten ingeven. Ik weet dat'k ook de volledige css van m'n wordpress zou kunnen aanpassen maar de tijd die daarin kruipt, én je moet het voor elke nieuwe site opnieuw doen, lijkt me niet zo interessant. Als 'k het opvragen van post-categories etc. wat onder de knie krijg, lijkt me dat een veel tijdsefficiëntere manier.Last edited by Scissor; 12-03-2012 at 18:58.
no votes
-
13-03-2012, 19:37 #7Approved 9-lifer
- Registered
- 08/01/05
- Location
- Turnhout
- Posts
- 1,182
- iTrader
- 0
- Mentioned
- 0 Post(s)
- Reputation
- 9/9
Ieder zen eigen stijl natuurlijk, ik denk persoonlijk dat het sneller is om dat allemaal te integreren in uw website (dus niet de css aanpassen van wordpress). Het enige wat je moet doen als je enkel de data wilt is the loop rondom uw div zetten die herhaald mag worden.
Nuja ik kan hier niet echt over oordelen omdat ik nog nooit volgens uw manier gewerkt heb. Het lijkt gewoon zo omslachtig allemaal, ik denk dat je het gewoon onnodig moeilijk maakt.-no votes
-
13-03-2012, 20:51 #8
Wat bedoel je juist met integreren in je website? Atm moet'k namelijk ook niets aanpassen in de css van wordpress. Ik roep gewoon de data op zonder het theme, zodat mijn eigen css alles styled. Heb op die manier nu al een aantal newsfeeds en wat formulieren geïntegreerd. Zoals je zelf zegt, gewoon op de plek waar je de data wil een loopje inplakken. Alleen vroeg'k mij af of iemand wat kennis heeft van de verschillende commands om specifieke data uit de DB te halen.
no votes
-
13-03-2012, 21:25 #9Approved 9-lifer
- Registered
- 08/01/05
- Location
- Turnhout
- Posts
- 1,182
- iTrader
- 0
- Mentioned
- 0 Post(s)
- Reputation
- 9/9
Wat jij doet is uw bestand buiten uw wordpress installatie plaatsen. Het is eigenlijk de bedoeling om dit in de themes folder te plaatsen.
Het is eigenlijk niet zo moeilijk om dit allemaal aan te passen ze. Stel uw website noemt Scissor.
1. Maak in wp-contents->themes een map scissor aan
In deze map plaats je volgende bestanden! (index.php en style.css zijn VERPLICHT!) rest is optioneel
- header.php
- style.css
- index.php
- page.php
- sidebar.php
- single.php
- footer.php
2. Stel dat je op deze moment die bestanden nog niet hebt (GEEN nood maak deze aan, desnoods een leeg bestand!)
3. open index.php (dit is uw main file, hier zou toch al iets in moeten staan :-P)
3.1 Als u een horizontaal menu bar hebt zou normaal alles op elke pagina hetzelfde moeten zijn, u kunt dus alles tot na dit menu kopieren en plakken naar header.php
3.2 in index.php voegt u bovenaan het volgende toe:
3.3 In uw index.php is uw header nu dus al weg en in een appart bestand beplaatst, u kan hetzelfde doen voor de sidebar en footer (als u deze hebt).PHP Code:<?php
get_header();
?>
Sidebar roep je als volgt op:
Footer roep je als volgt op:PHP Code:<?php get_sidebar()?>
3.4 Nu hebt ge in uw index.php normaal nog uw posts staan, dus bv iets in den aard alsPHP Code:<?php get_footer()?>
3.5 Deze post div heeft dus de functie om herhaaldelijk voor te komen op uw page. Dus u kan hier rond uw loop plaatsen.PHP Code:<?php get_sidebar()?>
<div class="post">
....
</div>
<?php get_footer()?>
---PHP Code:<?php get_sidebar()?>
<?php query_posts('category_name=nieuws&showposts=3'); ?>
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<div class="post">
<h2><a href="<?php the_permalink()?>"><?php echo the_title()?></a></h2>
<?php echo the_content()?>
</div>
<?php endwhile; else: ?>
<div class="post">
GEEN RESULTATEN GEVONDEN
</div>
<?php endif; ?>
<?php get_footer()?>
Ik hoop dat je het een beetje doorhebt nu. Dat is dus eigenlijk hetzelfde wat jij doet enkel zit je te werken in uw themes folder.
page.php en single.php zullen in uw geval ongeveer hetzelfde zijn als index.php. Het enige verschil is dat je daar geen link wilt rondom uw titel dus u kunt:
vervangen door:PHP Code:<h2><a href="<?php the_permalink()?>"><?php echo the_title()?></a></h2>
Het kan ook zijn dat u niet wilt dat je kan doorzoomen op 1 single post. Dan kan je in index.php bovenstaande aanpassing toevoegen en dan zal je niet kunnen doorzoomen.PHP Code:<h2><?php echo the_title()?></h2>
Ik denk dat volgend artikel hier ook wel bij gepast is, zodat je doorhebt hoe de wordpress logica in elkaar zit: Template Hierarchy « WordPress Codex
---
Zoals je ziet het is niet zo moeilijk om wordpress te integreren in uw site als je niet teveel tam tam wilt ;-)!
Ohja, picasa integreren kan je dan weer gemakkelijk doen in sidebar.php etc etc...-no votes
-
13-03-2012, 22:27 #10
Hmmmm, werkt niet. Krijg gewoon witte pagina. Weet ook niet op welke manier m'n css geladen wordt ofzo...morgen's proberen om een template te maken van m'n mainpage en die zo in wordpress te steken.
Ondertussen al wel gevonden hoe'k de nodige zaken opvraag uit m'n wordpress:
<?php query_posts('category_name=nieuws&showposts=3'); ?>
<?php while ( have_posts() ) : the_post(); ?>
<h2> <?php the_title(); ?> <h2/>
<p class="blue"> <?php the_time('F jS, Y') ?> </p>
<p> <?php the_content()?> </p>
<?php endwhile; ?>
gewoon m'n titel, de datum van de post en de inhoud van de post oproepen in m'n bestaande site. Werkt wonderwel.
Moest'k nu nog de pagina volledig in wordpress aan de praat krijgen kan'k idd eazy ook kalenders etc. integreren.Last edited by Scissor; 14-03-2012 at 02:27.
no votes
-
14-03-2012, 17:53 #11Approved 9-lifer
- Registered
- 08/01/05
- Location
- Turnhout
- Posts
- 1,182
- iTrader
- 0
- Mentioned
- 0 Post(s)
- Reputation
- 9/9
Uw css kan je btw makkelijk inladen op volgende manier:
Code:<link rel="stylesheet" type="text/css" media="all" href="<?php bloginfo( 'stylesheet_url' ); ?>" />
-no votes
-
15-03-2012, 04:36 #12
Alvast heel erg bedankt voor de opvolging van dit topic. Bijzonder leerrijk moet'k zeggen. Heb nu deze tut gevolgd: How to Create a Wordpress Theme from Scratch | Nettuts+ en ben er ondertussen al in geslaagd om idd m'n html-pagina om te zetten naar een wordpress theme. Heerlijk! Nu de komende dagen eens kijken of'k het nu volledig terug naar de hand kan zetten door m'n css wat aan te passen, maar't ziet er alvast heel erg veelbelovend uit. Thx!
no votes
