[PHP] Pobranie najnowszych wpisów z WordPressa

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.

Jak korzystnie zastąpić Adobe Reader [akt.]

Możliwe że wyposażając nowy system operacyjny w najpotrzebniejsze programy, tak jak ja, na liście programów do zainstalowania miałeś wpisany program Adobe Reader. Możliwe że nigdy nie pomyślałeś że są dla niego lepsze alternatywy. A jednak są…

Chciałbym zaprezentować program Foxit Reader. Jest to "lekki" czytnik plików PDF stworzony przez firmę Foxit Software. Jego przewagę nad Adobe Readerem stanowią między innymi:

  1. Znacznie mniej obciąża komputer. Instalator programu Adobe Reader zajmuje 53 MB, natomiast programu Foxit Reader zaledwie 6 MB. Po zainstalowaniu różnica jest kolosalna. Adobe Reader zajmuje 147 MB natomiast Foxit Reader 10 MB.
  2. Dużo szybsze wczytywanie. Przy otwieraniu nawet niezbyt dużych plików PDF różnica w szybkości otwierania jest zauważalna mimo posiadania nie najgorszego sprzętu.
  3. Częstsze aktualizacje. Tutaj na szczęście Adobe Reader nie odstępuje aż tak bardzo. Najnowsze wersje obu programów zostały wydane w sierpniu.
  4. Większe bezpieczeństwo. Panuje powszechne przekonanie, że pliki PDF są podatne na wirusy. To nie do końca prawda. Większość szkodliwych programów jest pisana pod Adobe Readera. Oznacza to więc, że posiadając inny program jesteśmy bezpieczniejsi.
  5. Ładny interface. Jeśli po przeczytaniu punktu pierwszego obawiasz się że program Foxit Reader ze względu na małe rozmiary będzie pozbawiony jakichkolwiek elementów estetycznych w interfejsie. Otóż nic bardziej mylnego! Moim zdaniem można stwierdzić nawet, że interface Foxit Readera jest ładniejszy niż Adobe. Jest nieskomplikowany i intuicyjny przy zachowaniu wymaganej estetyki.
  6. Wieloplatformowość. Foxit Reader podobnie jak jego konkurent od Adobe jest dostępny także na Linuxa. Niestety nie posiada on wersji na MAC OS.
  7. Nie instaluje syfu. Instalator FR na ostatnim etapie proponuje jedynie utworzenie skrótu na pulpicie do ebay.com i trzeba pamiętać o odznaczeniu tej opcji! Natomiast Adobe Reader przy pobieraniu ma domyślnie zaznaczone pobranie Free McAfee® Security Scan Plus.

Wady Foxit Reader.
Oczywiście Foxit Reader jak każdy program nie jest pozbawiony wad. Jedyną którą zauważyłem przy używaniu tego programu to możliwość pobrania dodatkowej paczki z językiem polskim poprzez dodatkową opcję w menu ustawień.

Mam nadzieje, że ten wpis przekonał cię do rozważań nad zmianą czytnika PDF. :) Jeśli tak to program Foxit Reader można pobrać np. stąd.

Aktualizacja (17.09.10)
Niewątpliwą wadą Foxit Readera jest brak automatycznej integracji z przeglądarką Mozilla Firefox (jest za to z IE). Tzn: aby otworzyć plik PDF na stronie trzeba by pobrać go najpierw na dysk.

Na pomoc przychodzi nam wtyczka Firefox Plugin. Jak ją zainstalować? Bardzo łatwo. Włączamy program Foxit Reader i z zakładki Help wybieramy pozycję Check for Updates Now. Z lewej strony ekranu wybieramy Firefox Plugin i klikamy Add.

Uwaga: rozwiązanie nie testowane!

Prosty sposób na pozbycie się Facebookowych widgetów na stronach [akt.]

Masz dość widgetów od Facebooka na różnych stronach? Chcesz odciążyć swoją przeglądarkę?

Jeśli na powyższe pytania odpowiesz "tak!" to zapraszam dalej :)

Jak się ich pozbyć?
Po pierwsze: potrzebujesz przeglądarki Mozilla Firefox lub Google Chrome z zainstalowanym dodatkiem Adblock Plus (pobierz).

  1. Kliknij prawym przyciskiem myszy na ikonę Adblock Plusa i wybierz opcje "Ustawienia".
  2. Kliknij w "Filtry" a potem "Dodaj filtr" (albo po prostu klawisz insert)
  3. Utwórz następujące filtry (wklej poniższe linki; każdy w oddzielne pole). Aby utworzyć kolejny filtr po prostu powtórz krok drugi.
# ten wpis zapobiega większości przycisków "Dodaj na Facebooka"
http://facebook.com/plugins/share.php?* 

# ten wpis zapobiega większości przycisków "Lubie to!"
http://facebook.com/plugins/like.php?* 

# ten wpis zapobiega większości widgetów pokazujących aktywność strony
http://facebook.com/plugins/activity.php?* 

Nie gwarantuje stuprocentowej skuteczności powyższych metod.