W tym wpisie przedstawię prosty skrypt pobierający ostatnie wpisy z bloga opartego na
WordPressie. Skrypt powinien działać co najmniej na wszystkich WP z gałęzi 3.x
Prezentuję dwie leciutko się różniące wersje pod wyświetlanie dokładnie jednego ostatniego
wpisu i wyświetlaniu określonej ilości ostatnich wpisów.
Wersja na jeden wpis
<?php
$db['host'] = 'serwer_twojej_bazy';
$db['user'] = 'nazwa_usera';
$db['pass'] = 'haselko';
$db['name'] = 'nazwa_bazy_danych';
@mysql_connect ($db['host'], $db['user'], $db['pass']) or die ('Nie udało się połączyć z bazą danych');
@mysql_select_db ($db['name']) or die('Nie udało się wybrać bazy danych.');
$query = mysql_query ("SELECT `post_title` FROM `wp_posts` WHERE `post_status` = 'publish' AND `post_type`='post' ORDER BY `post_date` DESC LIMIT 1") or die ('Nie udało się pobrać najnowszego wpisu');
$row = mysql_fetch_array ($query);
$post_title = $row['post_title'];
echo $post_title;
mysql_close();
Wersja na wiele wpisów
<?php
$db['host'] = 'serwer_twojej_bazy';
$db['user'] = 'nazwa_usera';
$db['pass'] = 'haselko';
$db['name'] = 'nazwa_bazy_danych';
$num_posts = '5';
@mysql_connect ($db['host'], $db['user'], $db['pass']) or die ('Nie udało się połączyć z bazą danych');
@mysql_select_db ($db['name']) or die('Nie udało się wybrać bazy danych.');
$query = mysql_query ("SELECT `post_title` FROM `wp_posts` WHERE `post_status` = 'publish' AND `post_type`='post' ORDER BY `post_date` DESC LIMIT $num_posts;") or die ('Nie udało się pobrać najnowszego wpisu');
echo '<ul>';
while ($row = mysql_fetch_array ($query)) {
echo "t<li>";
echo $row['post_title'];
echo "</li>n";
}
echo '</ul>';
mysql_close();
Sercem obu tych skryptów jest jedno zapytanie czyli:
SELECT `post_title` FROM `wp_posts` WHERE `post_status` = 'publish' AND `post_type`='post' ORDER BY `post_date` DESC LIMIT *
różnicą jest jedynie różna wartość ustawienia LIMIT. W pierwszym skrypcie wynosi ona
oczywiście jeden, ponieważ pobieramy tylko jeden wpis, a więc tylko jeden rekord.
W drugim zaś zależy od ustawienia odpowiedniej zmiennej $num_posts w konfiguracji skryptu.
Oba warianty skryptu różnią się też oczywiście sposobem wyświetlenia pobieranych danych.
W pierwszym jest to zwyczajne wywołanie funkcji mysql_fetch_array, w drugim zaś wypadku
jest ona użyta w pętli, a wpisy pokazywane są jako lista nieuporządkowana, co można dość
łatwo zmodyfikować do swoich potrzeb.
Przedstawione skrypty stanowią tylko swoisty "rdzeń". Musimy oprawić je w ramy dokumentu
HTML i ewentualnie możemy ustawić dla nich style CSS.
Zdaję sobie sprawę, że przedstawione skrypty dla wielu osób mogą się wydawać banalne i źle
napisane (przecież nie użyłem PDO i miliona wyjątków), ale mam nadzieję, że choć dla jednej
początkującej osoby ten prosty skrypt stanie się jakąś bazą do dalszego eksperymentowania
z SQL i PHP.