Plesk Hosting

This was the default home-page of ki-leierbud.lu in the new Almalinux 9.6 Server hosted by Visual Online.

Here are the related

  • DNS settings – v4: 85.93.210.152 / v6: 2001:1610:0:9::152
  • Frontend : www.ki-leierbud.lu / ki-leierbud.lu  >>> /var/www/vhosts/ki-leierbud.lu
  • WordPress : admin.ki-leierbud.lu >>> /var/www/vhosts/ki-leierbud.lu/admin.ki-leierbud.lu
  • Plesk Panel : https://plesk06.vo.lu:8443/ >>> login : username – password
  • FTP Server : plesk06.vo.lu >>> Filezilla :
  • Plesk Version :
  • WordPress Version : 6.8.1
  • PHP version : 8.3.21

To replace the default home-page by a custom webpage I used the recommended website builder Sitejet :

I selected the Academix theme template to start with a first trial :

First Attempt – Upload Fails Due to File Size

The initial attempt to upload the image above failed because the file size exceeded 2 MB.
The PHP settings in Plesk were already configured to allow up to 64 MB, but WordPress still enforced a 2 MB upload limit.

ChatGPT pointed out that in such cases, a .user.ini file is required in the root directory of the WordPress installation to override the default behavior — especially when PHP is running in FPM (FastCGI Process Manager) mode, which is common in Plesk environments.

Using the “+” button in the File Manager, I created a new .user.ini file and added the following content:

upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 300

Customized Home Page

To install a customized minimal web Homepage allowing to test the correct working of the WordPress REST API, I removed all the files in the “home directory > httpdocs” folder, except the index.html file. I replaced the content of this file with the following code :

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  <title>KI-Léierbud</title>
  <style>
    body {
      font-family: sans-serif;
      padding: 40px;
      background-color: #fdfdfd;
      line-height: 1.6;
    }

    h1, h2, p {
      margin-bottom: 1em;
    }

    a {
      color: #0055cc;
      text-decoration: none;
    }

    a:hover {
      text-decoration: underline;
    }
  </style>
</head>
<body>
  <h1>Welcome to My New Site KI-Léierbud!</h1>
  <h2>Test the WordPress REST API</h2>
  <p><a href="https://admin.ki-leierbud.lu/archives/244">Table of Content</a></p>
</body>
</html>

Here is the result :

The WordPress REST API is working as expected. Now it’s time to create a well designed Home-Page.

Hosting User Guides

Events

Meetings

Language Handling

The free version of the WordPress Polylang plugin does not include the language support in the REST API. With the assistance of ChatGPT-4o I added the following php-code at the end of the theme functions.php file :

add_action( 'rest_api_init', function () {
    register_rest_field( 'post',
        'translations',
        array(
            'get_callback' => function( $post_arr ) {
                return function_exists( 'pll_get_post_translations' )
                    ? pll_get_post_translations( $post_arr['id'] )
                    : null;
            },
            'schema' => null,
        )
    );
});

Here is the resulting JSON response when fetching a WordPress post in english, with translations in fr, de, pt and lb.

{"id":12,
"date":"2025-05-24T14:28:53",
"date_gmt":"2025-05-24T14:28:53",
"guid":{"rendered":"https:\/\/admin.ki-leierbud.lu\/?p=12"},
"modified":"2025-05-27T14:14:38",
"modified_gmt":"2025-05-27T14:14:38",
"slug":"ki-leierbud-what",
"status":"publish",
"type":"post",
"link":"https:\/\/admin.ki-leierbud.lu\/archives\/12",
"title":{"rendered":"KI-L\u00e9ierbud. What?"},
"content":{"rendered":"\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"1024\" src=\"https:\/\/admin.ki-leierbud.lu\/wp-content\/uploads\/what.png\" alt=\"\" class=\"wp-image-23\" srcset=\"https:\/\/admin.ki-leierbud.lu\/wp-content\/uploads\/what.png 1024w, https:\/\/admin.ki-leierbud.lu\/wp-content\/uploads\/what-300x300.png 300w, https:\/\/admin.ki-leierbud.lu\/wp-content\/uploads\/what-150x150.png 150w, https:\/\/admin.ki-leierbud.lu\/wp-content\/uploads\/what-768x768.png 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>KI-L\u00e9ierbud is an interactive web portal aimed at the general public, with the goal of making artificial intelligence (AI) accessible and understandable.<br>This site will offer educational content, interactive demonstrations, mini-courses, quizzes, and simulators to explain the fundamentals, applications, and ethical issues related to AI.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>KI-L\u00e9ierbud is an interactive web portal aimed at the general public, with the goal of making artificial intelligence (AI) accessible and understandable.This site will offer educational content, interactive demonstrations, mini-courses, quizzes, and simulators to explain the fundamentals, applications, and ethical issues related to AI.<\/p>\n",
"protected":false},
"author":1,
"featured_media":0,
"comment_status":"closed",
"ping_status":"closed",
"sticky":false,
"template":"",
"format":"standard",
"meta":{"footnotes":""},
"categories":[203],
"tags":[],
"class_list":["post-12",
"post","type-post",
"status-publish",
"format-standard"
"hentry","category-leierbud"],
"translations":{"en":12,"fr":71,"de":73,"lb":76,"pt":114},
"_links":{"self":[{"href":"https:\/\/admin.ki-leierbud.lu\/wp-json\/wp\/v2\/posts\/12",
"targetHints":{"allow":["GET"]}}],
"collection":[{"href":"https:\/\/admin.ki-leierbud.lu\/wp-json\/wp\/v2\/posts"}],
"about":[{"href":"https:\/\/admin.ki-leierbud.lu\/wp-json\/wp\/v2\/types\/post"}],
"author":[{"embeddable":true,"href":"https:\/\/admin.ki-leierbud.lu\/wp-json\/wp\/v2\/users\/1"}],
"replies":[{"embeddable":true,
"href":"https:\/\/admin.ki-leierbud.lu\/wp-json\/wp\/v2\/comments?post=12"}],
"version-history":[{"count":4,
"href":"https:\/\/admin.ki-leierbud.lu\/wp-json\/wp\/v2\/posts\/12\/revisions"}],
"predecessor-version":[{"id":437,
"href":"https:\/\/admin.ki-leierbud.lu\/wp-json\/wp\/v2\/posts\/12\/revisions\/437"}],
"wp:attachment":[{"href":"https:\/\/admin.ki-leierbud.lu\/wp-json\/wp\/v2\/media?parent=12"}],
"wp:term":[{"taxonomy":"category",
"embeddable":true,
"href":"https:\/\/admin.ki-leierbud.lu\/wp-json\/wp\/v2\/categories?post=12"},{"taxonomy":"post_tag",
"embeddable":true,
"href":"https:\/\/admin.ki-leierbud.lu\/wp-json\/wp\/v2\/tags?post=12"}],
"curies":[{"name":"wp",
"href":"https:\/\/api.w.org\/{rel}",
"templated":true}]}}

Ask your AI helper : difficulty levels of a quiz

Question to ChatGPT-4o :

how to describe the difficulty of a quiz ?

Answer of ChatGPT-4o :


To describe the difficulty levels of a quiz clearly and progressively, you can use a graded scale with commonly understood labels. Here’s a well-structured set of terms, from easiest to hardest:

Standard Quiz Difficulty Levels

  1. Very Easy
  2. Easy
  3. Moderate
  4. Difficult
  5. Very Difficult

Optional Alternatives (if you want to vary tone or context):

For a friendlier, more casual app:

  • Beginner
  • Basic
  • Intermediate
  • Challenging
  • Expert

For a gamified or playful experience:

  • Warm-up
  • Casual
  • Thinker
  • Tough Nut
  • Mastermind

You can also add icons or color cues to make it more intuitive:

  • 🔹 Very Easy (green or 1 star)
  • 🔸 Moderate (yellow or 3 stars)
  • 🔺 Very Difficult (red or 5 stars)

Weak

🧩 Score ≤ 5%Don’t give up!

“It didn’t click this time, but that’s okay! Use this as a starting point. Learning is a journey, and you’ve just begun.”

Poor

🌱 Score > 5% and ≤ 25%Still learning

“This quiz was a challenge – but every expert starts somewhere. Go over the material and give it another shot!”