[PHP] Wordpress Content laden

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • martijn2008
  • Registratie: December 2009
  • Laatst online: 21-08-2022
Ik heb een aantal bestanden, index.php, junior.php en style.css
die staan allemaal in de root en ik heb ook een mapje in de root staan genaamd wordpress, waar de hele instalatie van wordpress in staat.
index.php en junior.php heb ik voor het testen even precies het zelfde gemaakt:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<html>
<head>
<link rel="stylesheet" type="text/css" href="/style.css"/>
<title>CSV - Nieuws</title>
</head>
<body>
<hr>
<b><a href="index.php">Nieuws</a> &nbsp; | &nbsp; <a href="junior.php">Junioren Nieuws</a></b>
<hr>
<h1>Nieuws</h1>
<?php
require('wordpress/wp-blog-header.php');
while (have_posts()): the_post(); 
if ( in_category('nieuws') ) {
echo "<div class='content'>";
echo "<h2>";
the_title();
echo "</h2><hr>";
the_content();
echo "</div>";
echo "<i>";
the_time('l j F Y');
echo " om ";
the_time('H:i');
echo "</i><br /><br />";
}
endwhile; ?>
</body>
</html>

Een voorbeeld is te zien op http://csv.webatu.com/

Zo als te zien is, doet index.php het gewoon wel, maar bij junior.php word alleen het html gedeelte uitgevoerd. Je zou denken ergens een typfout ofzo, maar dat kan niet omdat het gewoon gecopy-paste is. Om toch nog iets te proberen heb ik alle Wordpress-fucties uit het php gehaald, zodat alleen nog maar de echo"tekst" overblijft, dan werkt het ineens wel, alleen heb ik natuurlijk nog niet de Wordpress-content.

Er gaat dus iets fout bij de Wordpress-functies, maar hoe kan dat want bij index.php doen die het wel.

Heeft iemand dit wel eens eerder gehad? Wat kan ik proberen om het op te lossen? Ik zou graag wel Wordpress als CMS behouden, omdat ik het invoeren van content als zeer prettig ervaar. Alleen wil ik niet dat er ook maar iets van Wordpress te zien is, zodat ik volledige controle over mijn inhoud/lay-out heb.

Alvast bedankt voor reacties :P

Acties:
  • 0 Henk 'm!

  • uashy
  • Registratie: Mei 2002
  • Laatst online: 31-05 17:44
Kan zo gauw niet verklaren waarom de index.php wel werkt, en dezelfde code in een bestand genaamd junior.php niet.

Om zeker te weten dat alles goed is opgezet, probeer onderstaande code eens:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
<ul>
<?php require($_SERVER['DOCUMENT_ROOT'] . '/blog/wp-load.php');
query_posts('cat=3');
if (have_posts()) : while (have_posts()) : the_post(); ?>
        <li>
        <h2><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a></h2>
        <span>Posted on <?php the_time('l jS F, Y') ?></span><br />
        <?php the_excerpt(); ?>
        </li>
        <?php endwhile; else: echo "no posts"; endif; ?>
        <?php wp_reset_query(); ?>
</ul>


Verander bij de query_posts functie even het nummer van de categorie die je wilt tonen. Deze code moet als het goed is in elke pagina werken. Controleer ook of het pad naar de wp-load.php klopt.

Als dit werkt, kun je van hier uit verder bouwen.

[ Voor 3% gewijzigd door uashy op 24-04-2011 19:47 . Reden: typo ]


Acties:
  • 0 Henk 'm!

  • NederB
  • Registratie: Augustus 2005
  • Laatst online: 01-09 15:55
Je maakt helemaal op de verkeerde manier gebruik van Wordpress.
Je moet bij WP niets in de root doen, maar in het "themes" (wp-content/themes) gedeelte.
Op http://codex.wordpress.org/ staat een uitgebreide documentatie hierover.

Acties:
  • 0 Henk 'm!

  • uashy
  • Registratie: Mei 2002
  • Laatst online: 31-05 17:44
NederB schreef op zondag 24 april 2011 @ 19:39:
Je maakt helemaal op de verkeerde manier gebruik van Wordpress.
Je moet bij WP niets in de root doen, maar in het "themes" (wp-content/themes) gedeelte.
Op http://codex.wordpress.org/ staat een uitgebreide documentatie hierover.
Daar sluit ik me bij aan. Het is vele malen eenvoudiger om een theme dat je bevalt te kiezen als basis en dat te gaan aanpassen aan je eigen smaak. En dat aanpassen kan vrij ver gaan, als je wilt kun je voor elke categorie een eigen template maken (template hierarchy).

Desalniettemin, het is mogelijk om posts buiten wordpress om te tonen, maar een theme is handiger.

Acties:
  • 0 Henk 'm!

  • martijn2008
  • Registratie: December 2009
  • Laatst online: 21-08-2022
Bedankt voor jullie hulp!!!
uashy schreef op zondag 24 april 2011 @ 19:33:
Kan zo gauw niet verklaren waarom de index.php wel werkt, en dezelfde code in een bestand genaamd junior.php niet.

Om zeker te weten dat alles goed is opgezet, probeer onderstaande code eens:
[.....code....]

Verander bij de query_posts functie even het nummer van de categorie die je wilt tonen. Deze code moet als het goed is in elke pagina werken. Controleer ook of het pad naar de wp-load.php klopt.

Als dit werkt, kun je van hier uit verder bouwen.
Ik heb jou code getest en het werkt van daaruit heb ik het aangepast hoe ik het wilde hebben, maar 1 ding werkt nu niet wat ik eerst wel werkend had gekregen en dat is het selecteren op categorie.

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<html>
<head>
<link rel="stylesheet" type="text/css" href="/style.css"/>
<title>CSV - Nieuws</title>
</head>
<body>
<hr>
<b><a href="index.php">Nieuws</a> &nbsp; | &nbsp;
<a href="junior.php">Junioren Nieuws</a></b>
<hr>
<h1>Nieuws</h1>
<?php
require('wordpress/wp-load.php');
query_posts('nieuws');
if (have_posts()) : while (have_posts()) : the_post();
echo "<div class='content'>";
echo "<h2>";
the_title();
echo "</h2><hr>";
the_content();
echo "</div>";
echo "<i>";
the_time('l j F Y');
echo " om ";
the_time('H:i');
echo "</i><br /><br />";
endwhile; else: echo "Geen artikelen in deze categorie."; endif;
wp_reset_query(); ?> 
</body>
</html>
NederB schreef op zondag 24 april 2011 @ 19:39:
Je maakt helemaal op de verkeerde manier gebruik van Wordpress.
Je moet bij WP niets in de root doen, maar in het "themes" (wp-content/themes) gedeelte.
Op http://codex.wordpress.org/ staat een uitgebreide documentatie hierover.
Maar ik wil ook nog dingen als het laden van xml door een xml-bestand te overschrijven, zodat elke week de gegevens in een tabel gemakkelijk vanuit excel geupdate kan worden. Op sommige pagina's is er helemaal geen wordpress nodig. Ik denk hiermee meer controle over de content te hebben, ik ben nog maar een beginner met Wordpress. En als ik gewoon de informatie laad zoals ik dat nu doe zie je niets van wordpress meer.

[ Voor 21% gewijzigd door martijn2008 op 25-04-2011 11:47 ]


Acties:
  • 0 Henk 'm!

  • uashy
  • Registratie: Mei 2002
  • Laatst online: 31-05 17:44
martijn2008 schreef op maandag 25 april 2011 @ 11:42:
Bedankt voor jullie hulp!!!

[...]


Ik heb jou code getest en het werkt van daaruit heb ik het aangepast hoe ik het wilde hebben, maar 1 ding werkt nu niet wat ik eerst wel werkend had gekregen en dat is het selecteren op categorie.
Vervang:
PHP:
1
query_posts('nieuws');


Door:
PHP:
1
query_posts('cat=3');


Selecteren van een categorie doe je op het nummer en niet op de naam van de categorie. Zie ook: http://codex.wordpress.org/Function_Reference/query_posts
Maar ik wil ook nog dingen als het laden van xml door een xml-bestand te overschrijven, zodat elke week de gegevens in een tabel gemakkelijk vanuit excel geupdate kan worden. Op sommige pagina's is er helemaal geen wordpress nodig. Ik denk hiermee meer controle over de content te hebben, ik ben nog maar een beginner met Wordpress. En als ik gewoon de informatie laad zoals ik dat nu doe zie je niets van wordpress meer.
Mijn inschatting is dat als je site groter groeit en je (veel) meer content hebt, dat je op termijn veel meer tijd kwijt bent met onderhoud als je op deze manier verder gaat. Wordpress is juist mooi om veel content te hebben, zonder dat je echt veel tijd kwijt bent aan het onderhouden van de pagina's.

Denk bijvoorbeeld eens aan een upgrade van Wordpress naar een nieuwe versie. Het komt regelmatig voor dat functies wijzigen of erger nog, verdwijnen. Het is dan veel sneller om in een theme alles aan te passen dan alle afzonderlijke php-pagina's door te akkeren.

En met plugins kun je ook prima alle functionaliteit die niet in Wordpress zit invoegen. Heb er niet naar gezocht, maar het zou me niet verbazen als er al lang een plugin zou zijn die xml kan omzetten naar een bericht bijvoorbeeld.

Voor de goede orde, het is je eigen keuze om op deze manier te werken en ik wil je ook helemaal niets opdringen. Mijn doel is je alleen bewust maken van de gevolgen voor de keuzes die je maakt :) .

[ Voor 3% gewijzigd door uashy op 25-04-2011 12:16 ]


Acties:
  • 0 Henk 'm!

  • martijn2008
  • Registratie: December 2009
  • Laatst online: 21-08-2022
Ik dacht dat je zowel als op nummer als op naam kon selecteren, maar ook gelukkig werkt het nummer wel :D
Deze wordpress site moet een website vervangen die al heel lang bestaat (5-6 jaar). Deze website is niet of nauwelijks (1-2 pagina's) uitgebreid. De bedoeling is dat er op een aantal vast pagina's elke 1-3 weken een artikel geschreven kan worden. Met xml scores en agenda bij houden. Dus ik ben nog steeds van mening dat dit de juiste manier is, maar de toekomst zal het zeggen :P

En als er een pagina bij moet, kan ik simpel weg een nieuwe categorie aanmaken in wordpress, en pagina copy-pasten en dan een paar kleine dingetjes wijzigen. En op wat voor onderhoud doel je dan?

Ik wil je heel erg bedanken, zonder jou was het niet gelukt :D

Acties:
  • 0 Henk 'm!

  • uashy
  • Registratie: Mei 2002
  • Laatst online: 31-05 17:44
martijn2008 schreef op maandag 25 april 2011 @ 12:26:
Ik dacht dat je zowel als op nummer als op naam kon selecteren, maar ook gelukkig werkt het nummer wel :D
Deze wordpress site moet een website vervangen die al heel lang bestaat (5-6 jaar). Deze website is niet of nauwelijks (1-2 pagina's) uitgebreid. De bedoeling is dat er op een aantal vast pagina's elke 1-3 weken een artikel geschreven kan worden. Met xml scores en agenda bij houden. Dus ik ben nog steeds van mening dat dit de juiste manier is, maar de toekomst zal het zeggen :P
Je hebt er in elk geval over nagedacht en een bewust een keuze gemaakt ;) .
En als er een pagina bij moet, kan ik simpel weg een nieuwe categorie aanmaken in wordpress, en pagina copy-pasten en dan een paar kleine dingetjes wijzigen. En op wat voor onderhoud doel je dan?
Ik doel vooral op het onderhoud dat om de hoek komt kijken als er een upgrade is. Nu heb je bijvoorbeeld 2 aparte php bestanden om de content van 2 verschillende categoriën te tonen, terwijl dat prima in 1 bestand kan. De naam van de categorie is immers een variabele die meegestuurd wordt in de url. Wordpress heeft standaard een functie aan boord genaamd single_cat_title die de naam van de categorie toont.

Zo gebruik ik bijvoorbeeld deze regel om alle posts uit een categorie op te halen:
PHP:
1
<?php $posts=query_posts($query_string."&orderby=title&order=asc&posts_per_page=-1"); ?>


Waarbij query_string dan de waarde heeft: category_name=nieuws
Wat ik dus eerder zei dat het alleen op nummer kan, klopt niet. Het kan ook op naam, maar dan moet je dus category_name gebruiken.
Ik wil je heel erg bedanken, zonder jou was het niet gelukt :D
Graag gedaan! Mijn eigen blog is ook in 6 jaar opgebouwd, ben begonnen bij versie 0.9x en het heeft mij ook aardig wat tijd gekost om het geheel te doorgronden. De codex is daarbij een handig hulpmiddel, het bevat goede informatie, ongeacht de methode die je gebruikt.
Pagina: 1