Gwolle Gastenboek


Gwolle Guestbook is the WordPress guestbook you’ve just been looking for. Beautiful and easy.
Gwolle Guestbook is not just another guestbook for WordPress. The goal is to provide an easy and slim way to integrate a guestbook into your WordPress powered site. Don’t use your ‘comment’ section the wrong way – install Gwolle Guestbook and have a real guestbook.

Huidige functies zijn:

  • Easy to use guestbook frontend with a simple form for visitors of your website.
  • Lijst van gastenboekberichten aan de frontend met paginering of oneindig schuiven.
  • Widget om een samenvatting van je laatste of beste berichten te tonen.
  • Eenvoudige en strakke beheerinterface die naadloos integreert met het WordPress Dashboard.
  • Dashboard Widget to easily manage the latest entries from your Admin Dashboard.
  • Easy Import from other guestbooks into Gwolle Guestbook.
  • E-mailmeldingen wanneer een nieuw bericht geplaatst is.
  • Moderatie, zodat je een bericht kunt controleren voordat het zichtbaar is in je gastenboek (optioneel).
  • 7 anti-spam functies, zoals Honeypot, Nonce, Formulier timeout, Akismet, Stop Forum Spam en Custom Quiz vraag.
  • Eenvoudige formulierbouwer om de invoervelden te kiezen die je wilt gebruiken.
  • Eenvoudige berichtbouwer om de delen van ieder bericht die je wilt tonen te kiezen.
  • Meerdere gastenboeken zijn mogelijk.
  • MultiSite wordt ondersteund.
  • Vertalingen. Eigen vertalingen kunnen makkelijk toegevoegd worden op GlotPress.
  • Beheerders kunnen antwoorden op ieder bericht.
  • A log for each entry, so that you know which member of the staff released and edited a guestbook-entry to the public and when.
  • IP-adres en host-logboek met een link naar de WHOIS website.
  • RSS-feed.
  • BBcode, Emoji en Smiley integratie (optioneel).
  • Easy uninstall routine for complete removal of all database changes.

… and all that integrated in the stylish WordPress look.

Importeren / Exporteren

You may have another guestbook installed. That’s great, because Gwolle Guestbook enables you to import entries easily.
The importer does not delete any of your data, so you can go back to your previous setup without loss of data, if you want to.
Trying Gwolle Guestbook is as easy as 1-2-3.

Importeren wordt ondersteund vanuit:

  • DMSGuestbook.
  • WordPress comments from a specific post, page or just all comments.
  • Gwolle Guestbook itself, with Export supported as well (CSV-file).


If you have a problem or a feature request, please post it on the plugin’s support forum on I will do my best to respond as soon as possible.

Als je me een e-mail stuurt dan zal ik niet reageren. Graag het support forum gebruiken.


Translations can be added very easily through GlotPress.
You can start translating strings there for your locale. They need to be validated though, so if there’s no validator yet, and you want to apply for being validator (PTE), please post it on the support forum.
I will make a request on make/polyglots to have you added as validator for this plugin/locale.


Bekijk de demo op


Gwolle Guestbook: De Add-On is de add-on voor Gwolle Guestbook die extra uitbreidingen biedt voor je gastenboek.

Huidige functies zijn:

  • Metavelden. Voeg elk veld toe dat je wilt; bedrijf, telefoonnummer, wat je maar wilt.
  • Delen op sociale media (optioneel).
  • Sterwaarderingen, met stemmen en weergave en Rich Snippets voor SEO (optioneel).
  • Gemiddelde sterrenwaardering per gastenboek.
  • Like an entry and view likes for each entry.
  • Voorbeeld voor het frontend formulier.
  • Voorbeeld voor het admin-editor formulier.
  • Admin-antwoord op de frontend met AJAX.
  • Edit content/author/origin of entry on the frontend with AJAX.
  • Meld misbruik.
  • Eenvoudig strings vervangen in de standaard tekst zodat je het gastenboek kunt veranderen in beoordelingen/reviews of alles dat je maar wilt.
  • Verwijder-knop in ieder bericht voor de beheerder en auteur (optioneel).
  • Permalink-knop in ieder bericht voor makkelijke toegang (optioneel).
  • E-mailknop om iedere auteur te contacteren (optioneel).
  • Sitemap ondersteuning voor populaire SEO/Sitemap plugins.
  • Auto Anonymize timer (optional).
  • Auto-verwijder timer (optioneel).

You can buy the Add-On at ZenoWeb Webshop for only 15 Euro.

Demo met Add-On

Bekijk de demo met de Add-On ingeschakeld op


This plugin is compatible with ClassicPress.


This plugin is also available in GitLab.


  • Frontend View of the list of guestbook entries. On top the button that will show the form when clicked. Then pagination. Then the list of entries.
  • Widget met meerdere opties.
  • Main Admin Page with the overview panel, so that you easily can see what's the overall status.
  • Lijst van gastenboekberichten. De iconen tonen de status van een bericht.
  • The Editor for a single entry. The Actions are using AJAX. There is a log of each entry what happened to this entry.
  • Settings Page. This is the first tab where you can select which parts of the form to show and use.
  • Dashboard Widget met nieuwe en niet-gemodereerde berichten.



  • Install the plugin through the admin page “Plugins”.
  • Alternatively, unpack and upload the contents of the zipfile to your ‘/wp-content/plugins/’ directory.
  • De plugin activeren via het ‘Plugin’ menu in WordPress.
  • Plaats ‘[gwolle_gb]’ in een pagina. Dat is alles.

As an alternative for the shortcode, you can use the function show_gwolle_gb(); to show the guestbook in your templates.
It couldn’t be easier.

Bijwerken vanaf een oude versie

Met versie 1.0 kwamen er enkele wijzigingen:

  • Gwolle Guestbook uses the Shortcode API now. Make sure your Guestbook page uses ‘[gwolle_gb]’ instead of the old one.
  • The entries that are visible to visitors have changed. Make sure to check if you have everything visible that you want and nothing more.
  • CSS has changed somewhat. If you have custom CSS, you want to check if it still applies.


The plugin itself is released under the GNU General Public License. A copy of this license can be found at the license homepage or
in the gwolle-gb.php file at the top.

Hooks: Actions en Filters

There are many hooks available in this plugin. Documentation is included in the zip file in /docs/actions and /docs/filters. Examples are included. If you have a need for a hook, please request this in the support forum.

Een bericht toevoegen met PHP-code

It is not that hard to add an entry in PHP code.

    $entry = new gwolle_gb_entry();

    // Set the data in the instance, returns true
    $set_data = $entry->set_data( $args );

    // Save entry, returns the id of the entry
    $save = $entry->save();

The Array $args can have the following key/values:

  • id, int with the id, leave empty for a new entry.
  • author_name, string with the name of the autor.
  • author_id, id with the WordPress user ID of the author.
  • author_email, string with the email address of the author.
  • author_origin, string with the city of origin of the author.
  • author_website, string with the website of the author.
  • author_ip, string with the ipaddress of the author.
  • author_host, string with the hostname of that ip.
  • content, string with content of the message.
  • datetime, timestamp of the entry.
  • ischecked, bool if it is checked by a moderator.
  • checkedby, int with the WordPress ID of that moderator.
  • istrash, bool if it is in trash or not.
  • isspam, bool if it is spam or not.
  • admin_reply, string with content of the admin reply message.
  • admin_reply_uid, id with the WordPress user ID of the author of the admin_reply.
  • book_id, int with the Book ID of that entry, default is 1.

Format for importing through CSV-file

The importer expects a certain format of the CSV-file. If you need to import from a custom solution, your CSV needs to conform.
The header needs to look like this:


The next lines are made up of the content.

Er zijn wat zaken om op te letten:

  • Date needs to be a UNIX timestamp. For manually creating a timestamp, look at the timestamp generator. When using a formatted date, the plugin will try to read it correctly. If it fails it will use today’s date.
  • Use commas for field separators. If you use Office software like Excel (which is hell) or LibreOffice Calc, set this correctly.
  • Use double quotes around each field. When no quotes are used the import process can break when having quotes or commas inside the content of the entry.
  • The file should be encoded as UTF-8 without BOM to correctly enter special characters.
  • Make sure you use UNIX line-endings. Any decent text-editor can transform a textdocument (CSV file) to UNIX line-endings.

With version 1.4.1 and older, the field datetime was called date.

You could make a test-entry, export that, and look to see what the importer expects from the CSV.
There is also an example CSV file included in the zipfile of the plugin under ‘/docs/import_example/’.

If you want to prepare a CSV file from other software, plaese be aware that Microsoft Excel is terrible in dealing with CSV files. You will not manage to create a working CSV file with this. Please use LibreOffice Calc for this.


Hoe krijg ik mensen zover dat ze berichten plaatsen in mijn gastenboek?

You could start by writing the first entry yourself, and invite people to leave a message.

Welke berichten zijn zichtbaar aan de frontend?

Starting with version 1.0, the following entries are listed on the Frontend:

  • Vrijgegeven
  • Niet gemarkeerd als spam
  • Niet in de prullenbak

Before that, in 0.9.7, all the ‘checked’ entries were visible.

Ik heb veel ongemodereerde berichten. Wat zal ik doen?

  • For the entries that you consider spam, but were not automatically marked as spam, you can manually mark them as spam, and they will not be visible anymore.
  • For entries that are not spam, but you still don’t want them visible, you can move them to trash.
  • The entries that you want visible, set them to checked.

Ik wil deze plugin vertalen

Translations can be added very easily through GlotPress.
You can start translating strings there for your locale.
They need to be validated though, so if there’s no validator yet, and you want to apply for being validator (PTE), please post it on the support forum.
I will make a request on make/polyglots to have you added as validator for this plugin/locale.

Wat te doen tegen spam?

By default this plugin uses a Honeypot feature and a Timeout feature. If spambots try to post guestbook entries this should work sufficiently.

Als je nog steeds problemen hebt dan zijn er meer opties:

  • Honingpot-feature: Verborgen veld dat alleen spambots in zouden vullen.
  • Form Timeout: If the form was sent in too fast after loading the page, the entry will be marked as spam.
  • Nonce: zal verifiëren of je echt de pagina geladen hebt met het formulier, voor je een nieuw bericht inzond. Spambots zullen alleen het formulier verzenden zonder dat ze een Nonce hebben.
  • Akismet: spamfilter door Automattic, een derde partij. Werkt erg goed, maar niet iedereen zal een externe dienst willen gebruiken.
  • Stop Forum Spam: Third party spamfilter. Again, works really well, but not everybody likes to use a third party service.
  • Custom Anti-spam vraag: Gebruikt een simpele quiz-vraag om te testen of je een mens bent.

Ik gebruik al WP-SpamShield

WP-SpamShield is a general plugin for anti-spam that supports the general WordPress forms and many plugins.
Activating WP-SpamShield will disable the anti-spam features in Gwolle Guestbook and all anti-spam will be handled by WP-SpamShield.
If you don’t want to use WP-SpamShield’s protection for Gwolle Guestbook, then all you need to do is disable Anti-Spam for Miscellaneous Forms in WP-SpamShield settings.

Hoe kan ik meerdere gastenboeken gebruiken?

You can add a parameter to the shortcode, like:

[gwolle_gb book_id="2"]

This will make that page show all the entries in Book ID 2. In case you read this on, the quotes are supposed to be standard double quotes, no backticks.

If you use the template function, you can use it like this:

show_gwolle_gb( array('book_id'=>2) );

Met meerdere gastenboeken, hoe kan ik dat bijhouden?

There is no need to use id’s that are incrementing.
If you have a lot of guestbooks on lots of pages, you can just use the id of the post as the id of the guestbook. That way you won’t have double id’s.
You can set the book_id automatically to the post_id with this shortcode:

[gwolle_gb book_id="post_id"]

In case you read this on, the quotes are supposed to be standard double quotes, no backticks.

I use Infinite Scroll with multiple guestbooks

This is not really supported and might result in strange issues.

Ik wil maar een enkel bericht tonen.

Je kunt een shortcode parameter gebruiken om een enkel bericht te tonen:

[gwolle_gb_read entry_id="213"]

In case you read this on, the quotes are supposed to be standard double quotes, no backticks.

Ik zie de labels niet in het formulier.

This plugin doesn’t apply any CSS to the label elements. It is possible that your label elements have a white color on a white background.
You can check this with the Inspector in your browser. If that is the case, you have a theme or plugin that is applying that CSS to your
label elements. Please contact them.

Ik krijg geen meldings-e-mail.

First check your spambox in your mailaccount.

Second, on the settingspage you can change the From address for the email that is sent.
Sometimes there are problems sending it from the default address, so this is a good thing to change to a real address.

There are also several SMTP plugins, where you can configure a lot of settings for email.

If it still doesn’t work, request the maillog at your hosting provider, or ask if they can take a look.

Ik wil het formulier en de berichtenlijst op verschillende pagina’s tonen

There are different shortcodes that you can use.
Instead of the ‘[gwolle_gb]’ shortcode, you can use ‘[gwolle_gb_write]’ for just the form, and ‘[gwolle_gb_read]’ for the list of entries.

There is also a widget that can display the latest entries in a widget area, that has many options.
Alternatively you can use the shortcode ‘[gwolle_gb_widget]’ to display the latest entries in widget layout. Parameters are:

  • book_id, int with an ID.
  • num_entries, int with the shown number of messages.
  • num_words, int with the shown number of words per entry.

I want to show the form immediately, without the button

The shortcodes ‘[gwolle_gb]’ and ‘[gwolle_gb_write]’ have a parameter for the button.
You can use them as ‘[gwolle_gb button=”false”]’ or ‘[gwolle_gb_write button=”true”]’, to deviate from the default.

Moderatie is geactiveerd, maar mijn bericht is gemarkeerd als vrijgegeven

If a user with capability of ‘moderate_comments’ posts an entry, it will be marked as checked by default, because he can mark it as checked anyway.

Moderatie is niet geactiveerd, maar sommige berichten blijven als niet vrijgegeven staan

There is validation of the length of words in the content and author name.
If the words are too long and it looks abusive, it will be marked as unchecked. A moderator will still be needed to manually edit and check these entries.

Wanneer ik de RSS-feed open krijg ik een 404-fout

You can refresh your rewrite rules, by going to Settings / Permalinks, and save your permalinks again.
This will most likely add the rewrite rule for the RSS Feed.

I use a caching plugin, and my entries are not visible after posting

When you have moderation disabled, Gwolle Guestbook will try to refresh the cache.
If it doesn’t on your setup, please let me know which caching plugin you use, and support for it might be added.

You can also refresh or delete your cache manually. Most caching plugins offer support for that.

Ik gebruik een plugin voor meertaligheid

There are 2 settings that you need to pay attention to. If you saved the settings for the form tab, you should save an
empty header and notice text. It will fill in the default there after saving, but that is okay.
As long as you saved an empty option, or it is still not-saved, then it will show the translated text from your MO file.

Also, you will want to use the book_id parameter of the shortcode for multiple guestbook.

Ik gebruik een thema met AJAX

Using a theme with AJAX navigation can give issues. Only on the guestbook page is the JavaScript and CSS loaded.
So you would need to load it on every page to have it available for the guestbook. You can add the following code to functions.php of your theme:

function my_gwolle_gb_register() {
add_action('wp_enqueue_scripts', 'my_gwolle_gb_register', 20);

I don’t have any experience myself with AJAX themes. If it doesn’t work, please contact the theme author.

Ik gebruik de Autoptimize plugin

The frontend scripts will only be loaded on the Guestbook page, so they won’t be added to autoptimize.
You can add ‘gwolle_gb_frontend’ to both the comma-separated JS and CSS autoptimization exclusion list. That way it will still be loaded right.
On the autoptimize settings page, you might have to click on “show advanced settings”-button top-right first. More info on troubleshooting in AO’s FAQ.

Welke rechten zijn er nodig (capabilities)?

Voor het beheren van berichten heb je het recht nodig op ‘moderate_comments’.

Voor het instellen van de opties heb je het recht nodig op ‘manage_options’.

Kan ik een template overschrijven?

You can look at ‘frontend/gwolle_gb-entry.php’, and copy it to your theme folder. Then it will be loaded by the plugin.
Make sure you keep track of changes in the default templatefile though. It is often better to use filters, that way you are more forward-compatible.

Welke hooks zijn beschikbaar voor aanpassingen?

There are many hooks available in this plugin. Documentation is included in the zip file in /docs/actions and /docs/filters. Examples are included.
If you have a need for an additional hook, please request this in the support forum.

I want to change the word Guestbook into something else.

First, this plugin is a guestbook. If you want to use it for a different usecase, you will need to do that in code.
Take a look at the previous question about hooks.
You are probably wanting to use these two hooks:

Also, the add-on has options for text changes.

I have a one-page design and want to use links with the right anchor.

It should be possible by using a filter.
Have a look at this example code. Make sure to use the correct anchor tag for your website.

Should I really not use WordPress comments for a guestbook?

Sure you can if you want to. In my personal opinion however it can be a good thing to keep comments and guestbook entries separated.
So if you already have a blog with comments, the guestbook entries might get lost in there, and keeping a separate guestbook can be good.
But if you don’t use standard comments, you can just as easily use the comment section for a guestbook.


10 september 2021
I love this Guestbook! It is very easy for clients to use and for me to connect with them. Best I have used so far. Cynthia A. Silk Angel Channeler & Psychic Medium
22 augustus 2021
I am using gwolle-guestbook now for about 6 Months on my clients site. It simply does what it's supposed to. No overloading of options, easy to handle. 5 Stars! Missing nothing (so far 😉 ).
27 februari 2021
It may look only like a "Guest book", but this plugin can so much more! I used it for many other things, by simply replacing translation with Loco Translate. 5/5
Lees alle 101 beoordelingen

Bijdragers & ontwikkelaars

“Gwolle Gastenboek” is open source software. De volgende personen hebben bijgedragen aan deze plugin.


“Gwolle Gastenboek” is vertaald in 17 talen. Dank voor de vertalers voor hun bijdragen.

Vertaal “Gwolle Gastenboek” naar jouw taal.

Interesse in ontwikkeling?

Bekijk de code, haal de SVN repository op, of abonneer je op het ontwikkellog via RSS.



  • 2021-05-05
  • Add more classes to text elements, for better customization.
  • Better explain how to add a new user to notifications.
  • Fix PHP error when addon is set as active but not available in plugins folder.


  • 2021-03-01
  • Fix deprecated jQuery calls with WP 5.6 and jQuery 3.5.
  • Fix form submission when using http on a https website or viceversa.


  • 2021-01-27
  • Add notification email on moderation.
  • Support WP Rocket for clearing cache.
  • Add span around “from” text in frontend.
  • Add “required” parameter to search widget.
  • Better test for empty string of email subscribers.
  • Change ‘intval()’ to ‘(int)’.
  • Change ‘strval()’ to ‘(string)’.


  • 2020-10-21
  • Security fix: always escape formdata in ‘gwolle_gb_add_formdata()’.
  • Thanks Nicolas SURRIBAS.


  • 2020-10-06
  • Remove placeholders in form, labels should be enough.
  • Fix closing/opening of postboxes.
  • Check for double entries is now a filter, so that it can be disabled.


  • 2020-08-10
  • Fix blocklist.


  • 2020-07-21
  • Add blocklist (taken from add-on).
  • Also use blocklist from WordPress Core.
  • Fix datetime in RSS to be RFC 822 compliant.
  • Add support for user ID in import (based on email address).
  • Support editing of author ID in Editor.
  • Add class ‘gwolle-gb-widget’ to widget ‘ul’ element.
  • Fix saving certain settings on some hosts.
  • Update strings for add-on.


  • 2020-06-21
  • Fix svn issue.


  • 2020-06-21
  • Remove ‘:’ from form labels.
  • Remove part of the label for anti-spam question.
  • Fix class of messages on error (red/green).
  • Fixed a few actions for ‘gwolle_gb_save_entry_admin’.
  • Remove ‘gwolle_gb_antispam_label’ filter.
  • Metabox opens now with a softer fade effect.
  • Use standard From addres ‘’ as default.
  • Add function ‘gwolle_gb_get_user_ip()’ for CDN or proxy.
  • Add filter ‘gwolle_gb_include_proxy_ips’ for using this with a CDN or proxy.
  • Fix bugs in book_id functions.


  • 2020-05-15
  • Redo dismiss button for form in CSS.
  • Improve CSS for dark themes.
  • Set error for select element on ‘div.input’.
  • Add postbox on main admin page when add-on is active.
  • Update strings for add-on.


  • 2020-05-04
  • Fix emoji in frontend form.
  • Set timestamp in editor to hidden again.
  • Make some CSS more specific.


  • 2020-04-28
  • Many CSS ids and classes have changed, please review your custom CSS.
  • Plugin supports multiple forms on one page now.
  • Fix serialized options.
  • Add pause on hover for super-simple-slider.
  • Fix updating of datetime on admin editor.
  • Fix double class attributes in form.
  • Run timeout function only once, set timout to 1 second.
  • Remove separators from BBcode icons.
  • Add loading=”lazy” attribute to bbcode images.
  • Add filters ‘gwolle_gb_author_origin_prefill’, ‘gwolle_gb_author_content_prefill’ and ‘gwolle_gb_author_content_label’.
  • Deprecate ‘gwolle_gb_content_label’ filter.
  • Update strings for add-on.