Help:Display a randomized Article of the Day

From semantic-mediawiki.org
Semantic extension(s): Semantic MediaWiki
Further extension(s): ParserFunctions
Keyword(s): random page · random

Description:


To get this working, copy the template source to your Template namespace and then transclude it where desired.

This template generates a pseudo-random article for today. The article selected is based on today's date so that the article will remain constant for one day but change automatically the next day. This is done by getting the number of seconds from epoch until the beginning of today, doing an expression on it and then modding it by the number of articles in the wiki. So the final result is a pseudo-random number between 0 and the (number of keywords in the wiki - 1). Then it uses that result as an offset to retrieve that number article in the wiki based on the order returned by the ask query. In truth, the article selected will change on a day that the number of articles in the wiki changes.

The sample query in this page will pick from all articles in the main namespace. You can customize the queries to select whichever pages you'd like. (You must modify both ask queries to select the same set of pages.)

Loosely based on: Wikipedia:Template:Random_number. Requires extension "ParserFunctions" (MediaWiki.org).

template source[edit]

<includeonly>{{#ask:
 [[:+]]
 [[Modification date::+]] <!-- prevent deleted pages from showing up -->
 |format=embedded
 |limit=1
 |searchlabel=
 |offset={{#expr: ( ( {{#time:U|today}} + {{{2|{{#time:z|today}}} }} + 67 ) * 67 ) mod {{#ask:
   [[:+]]
   [[Modification date::+]] <!-- prevent deleted pages from showing up -->
   |format=count
  }}
 }}
}}</includeonly>