FAQs

Troubleshooting

A published post does not appear on the site

Check, in this order:

  1. Status is Published, not Draft or Pending Review.
  2. Publish at is not in the future. Scheduled posts show a "Scheduled" badge in the admin list and return 404 until their time.
  3. At least one site is ticked under Visible on sites. A post with no site ticked is hidden from every site, feed and block, whatever the hint under the checkboxes says. The demo posts created at install time and posts created through POST /api/blog/posts have no site assignment.
  4. You are looking at the right site: the post is only shown on the sites ticked.

See Multi-Site Visibility.

The View button on a post leads to a 404

View uses the first site the post is assigned to, or the first site in the installation when it has none. Assign the post to a site and the link will work.

Scheduled posts go live at the wrong time

The comparison uses the database server's clock (NOW()), while the form value is interpreted in PHP's timezone (date.timezone in php.ini). Make sure both PHP and MySQL/MariaDB use the same timezone.

Comments submitted from the site never reach the Comments page

  • Enable comments must be on in Admin > Blog > Settings; when it is off the form is not shown at all.
  • Only published posts accept comments.
  • The bundled show.phtml prints its own HTML form and does not render the Blog\Form\CommentForm object passed in $commentForm, so the comment_csrf field required by the form's validation is never submitted and the comment is discarded silently. If you use the stock template or copy it into your theme, render $commentForm (including $this->formHidden($commentForm->get('comment_csrf'))) so the token is posted. Submissions through POST /api/blog/posts/{id}/comments or POST /api/blog_comments are not affected.

Approved comments are not shown under the post

The controller passes approved comments to the template as $comments, but the bundled show.phtml reads $post['comments'], which is never set, so the section always says "No comments yet." A theme override of view/omeka/site/blog/show.phtml that loops over $comments fixes this. See Displaying the Blog for the template variables.

No notification emails arrive

  1. At least one user must be selected under Moderation notification recipients, and the user must be active.
  2. Omeka S must have a working mail transport in config/local.config.php.
  3. Emails are sent by background jobs. Open Admin > Jobs, find the Blog\Job\SendNotificationEmail job and read its log; a "starting" job that never finishes means the job runner (PHP CLI path in config/local.config.php) is misconfigured.

The Moderation notification recipients list is empty

You are probably on the Configure form reached from Admin > Modules. That copy of the form does not load users and does not save recipients. Use Admin > Blog > Settings instead. If the list is empty there too, no active user has the Editor, Site Administrator or Global Administrator role.

An author cannot publish

This is by design. Authors' posts are saved as Pending Review and the moderation recipients are emailed. An Editor, Site Administrator or Global Administrator must set the status to Published. See Editorial Workflow.

"Please select a category" when saving

Every post needs a category. Create one under Admin > Blog > Categories first, then pick it in the Post Settings panel. Posts left uncategorised after their category was deleted need a new category on their next save.

The post URL returns 404 although the post is published and assigned

Slugs must contain only lowercase letters, digits and hyphens; the public route does not match anything else. Edit the post and clear the Slug field to regenerate it, or type a slug that follows that rule.

The RSS feed returns 404

Feeds are off. Tick Enable RSS / Atom feeds in Admin > Blog > Settings. The feed URL is /s/{site-slug}/blog/feed/rss; check the site slug.

The Primary color setting has no effect

The value is saved but the bundled templates do not use it. Override the --blog-accent CSS variable in your theme stylesheet instead. See Displaying the Blog.

The API does not return my draft or scheduled post

Unauthenticated requests, and API keys belonging to Researcher or Author accounts, only see what the public site shows: published posts whose publish time has passed, and approved comments without the commenter's email. Any status filter they send is ignored, and GET /api/blog_posts/{id} answers 404 for a draft, pending or scheduled post. To read unpublished content, authenticate with an API key from an Editor, Site Administrator or Global Administrator account and pass status=draft or status=pending. The legacy GET /api/blog/posts endpoint only ever returns published posts. See REST API.

CKEditor does not load on the post form

Reload the page with the browser cache bypassed and check the browser console for JavaScript errors. Another module that replaces Omeka's CKEditor configuration wholesale can break the editor; the Blog module only extends the configuration through the o:ckeditor-config event.

Author name shows as a number

The user account that created the post was deleted, so the template falls back to #{author_id}. Posts keep their author_id; there is no way to reassign the author from the admin form, but it can be changed in the blog_post table.

Log in for Support