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
// Database config
$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.');
// Get title of newest post
$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
// Database config
$db['host'] = 'serwer_twojej_bazy';
$db['user'] = 'nazwa_usera';
$db['pass'] = 'haselko';
$db['name'] = 'nazwa_bazy_danych';
// Other config
$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.');
// Get titles of newests posts
$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.
Komentarze wyłączone
Możliwość komentowania na blogu została wyłączona. Zapraszam do kontaktu na Twitterze, Facebooku lub poprzez formularz, o ten tutaj. Do usłyszenia!