Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Skrypt automatycznie publikujący posty o danej godzinie codziennie
Ascoran
post
Post #1





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 27.10.2015

Ostrzeżenie: (0%)
-----


Witam,

Strona postawiona na wordpress

Interesowałby mnie skrypt który automatycznie losowałby (obrazek + tekst) z powiedzmy bazy danych lub jakiegoś pliku a następnie dodawał takowy post na stronę - pełen automat.

Tzn, ja wrzucę do bazy gotową listę tekstów a do jakiegoś folderu zdjęcia z kolejnymi liczbami (1.png, 2.png, 3.png itp) i chciałbym żeby skrypt o danej godzinie losował tekst z całej puli dostępnej w bazie oraz dodawał do tego zdjęcie (również może być losowe - lub może jechać po kolei).

Za każdą pomoc serdecznie dziękuje.

Myślę że podałem wystarczająco dużo informacji aby zrozumieć o co mi chodzi.
Za szybką i skuteczną pomoc możliwy drobny przelew lub paypal (IMG:style_emoticons/default/smile.gif)

Takowe posty mają się pojawiać w godzinach 8:00, 12:00, 15:00 i 21:00 codziennie i najlepiej jak by publikacje nie wymagały niczyjej obecności - gdyż nie zawsze w tych godzinach ktoś może się pojawić.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
kapslokk
post
Post #2





Grupa: Zarejestrowani
Postów: 965
Pomógł: 285
Dołączył: 19.06.2015
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


1. Skrypt będzie odpalany cronem
2. Przy pomocy readdir() stworz sobie tablicę zdjęć, później użyj array_rand() aby wylosować jedno z nich
3. Jak wylosować tekst z bazy mysql możesz przeczytać np tutaj: http://blog.vokiel.com/mysql-rand-jak-pobrac-losowe-wiersze/ - swoją drogą to blog osoby z forum jeśli nick nie kłamie (IMG:style_emoticons/default/smile.gif)
4. Jeśli chcesz zapłacić za to to chyba niżej jest odpowiedni dział do tego.
Go to the top of the page
+Quote Post
session
post
Post #3





Grupa: Zarejestrowani
Postów: 112
Pomógł: 22
Dołączył: 11.04.2010
Skąd: Tarnów

Ostrzeżenie: (0%)
-----


Zakładam, że to jak pobrać dane z bazy wiesz. Teksty najlepiej poindeksować, żeby szybko losować, jeśli zdecydujesz się na bazę MySQL możesz losować już w zapytaniu, używając jednego ze sposobów na MySQL RAND()
  1. SELECT `id`,`tekst` FROM `teksty` JOIN (SELECT CEIL(RAND() * (SELECT MAX(`id`) FROM `teksty`)) AS 'id') AS rows USING (`id`);

EDIT: czyli dokładnie tak jak opisał to kolega wyżej (IMG:style_emoticons/default/wink.gif) (IMG:style_emoticons/default/tongue.gif)

Wygenerowanie listy plików i wybranie losowego (nie musisz koniecznie numerować plików):
  1. $directory='/path/'; // katalog z plikami
  2. $files=array_diff(scandir($directory), array('..', '.'));
  3. $file=array_rand($files, 1); // array_rand() odpowiada za losowanie pliku z tablicy


Jeśli obrazek jest powiązany z tekstem to w bazie przechowuj jego nazwę wtedy powyższy etap możesz pominąć.

Dodawanie postu w WP: wp_insert_post
Dodawanie obrazka do postu: wp_insert_attachment

  1. $post=array(); // wypełnij danymi pobranymi z MySQLa
  2. $attachment=array(); // możesz wypełnić tak jak w przykładzie z Codexa
  3. $path=''; // ścieżka do obrazka
  4.  
  5. $postID=wp_insert_post( $post, false );
  6. $attaID=wp_insert_attachment( $attachment, $path, $postID );
  7. wp_generate_attachment_metadata( $attaID, $path );


Powyższy kod jest tylko wskazówką, trzeba go dopracować. Jeśli napiszesz taki skrypt, który będzie działał to zostaje ostatnia rzecz
Cytat
pełen automat [...] najlepiej jak by publikacje nie wymagały niczyjej obecności

tutaj najłatwiej będzie użyć Crona, z tym że Twój usługodawca musi dać Ci taką możliwość, ale cron staje się coraz bardziej popularny. Sposób dodawania zadań do tablicy crona często też zależy od usługodawcy, np: cron home, cron linuxpl, ogólnie na serwerach linuxowych: cron tutorial

EDIT: pamiętaj, żeby skrypt korzystający z funkcji WordPressa działał musi wiedzieć jak je wykonać, zatem musisz zaincludować wp-load.php do swojego skryptu

Ten post edytował session 27.10.2015, 21:13:39
Go to the top of the page
+Quote Post
Ascoran
post
Post #4





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 27.10.2015

Ostrzeżenie: (0%)
-----


Dzięki za rady, w poniedziałek spróbuje to wykonać i dam znać czy działa.
Mój hosting obsługuje crona więc nie będzie problemu.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 8.10.2025 - 11:43