# Family Wiki

- Contributors: akirk
- Tags: family, wiki
- Tested up to: 6.8
- License: [GPLv2 or later](http://www.gnu.org/licenses/gpl-2.0.html)
- Stable tag: 1.2.0

Keep your family history in a wiki hosted on WordPress.

## Description

This plugin transforms your WordPress install into a Wiki for keeping your family history.

### Recommended setup

In wp-admin go to *Settings* → *Reading* and set a static homepage. The plugin also adds an option *I would like my site to be private, visible only to myself and users I choose* which will usually be an option you'll want to use since only registered users should be allowed to edit.

Create new users with *Wiki User* (can edit pages) or *Wiki Editor* (can also delete pages). Unfortunately otherwise only the roles *Editor* or *Administrator* will allow them to edit pages.

The plugin automatically provides a family calendar at `/family-wiki/calendar/` and a birthday calendar at `/family-wiki/birthdays/`. Date links in person pages point to the family calendar.

On WordPress multisite, you can link related family wiki sites from the same network in *Settings* -> *Family Wiki* by selecting from the sites where you are a member. When a page exists on the current wiki and a configured peer wiki with the same slug, the infobox shows an *Also on* row linking to that peer page using its title there. If the same person or page uses different slugs on the two wikis, add a slug mapping for that pair. Missing local wiki links are also checked against configured peer wikis; when a matching peer page exists, the link points to the peer page instead of being marked as missing.

Person pages can have related pages as direct child pages, for example `/person-name/related-page/`. These child pages are recognized by the missing-link checker and listed in the person's infobox.

### Advanced Custom Fields

The plugin has switched to using Advanced Custom Fields for wiki page metadata. Please install that plugin in version 6.2 or up. The fields should be automatically restored using the provided JSON file in the `acf-json/` directory.

For each wiki page, you can enter data like birth or death date, citizenships, and mother/father/children relationships. Dates and family relationships are used for the calendar page and for automatically generating a short bio using the shortcode `[name_with_bio]`. You'd put this as the first thing in a wiki page.

### GEDCOM import and export

Administrators can import GEDCOM files from WordPress's standard *Tools* -> *Import* screen and export GEDCOM files from *Tools* -> *Family Wiki*. GEDCOM uploads open a review step where you can choose individual entries or select descendant subtrees before importing. The importer creates or updates person pages from selected `INDI` records, links families from `FAM` records when the related people were selected, and stores each GEDCOM xref on the page so later imports update the same person. The exporter writes published wiki pages as GEDCOM `INDI` and `FAM` records, including names, sex, birth and death facts, parent/child relationships, spouses, and marriage details.

### Gutenberg Blocks

The *Family Calendar* block will show all dates from the wiki.

The *Birthday Calendar* block will show all dates of living people (determined by `showage`, see above) from the wiki.

### Performance

For displaying the red missing links or green external links, all pages are evaluated on page load. This works for small sites but won't work well if you have thousands of pages.

**Development of this plugin is done [on GitHub](https://github.com/akirk/family-wiki). Pull requests welcome. Please see [issues](https://github.com/akirk/family-wiki/issues) reported there before going to the [plugin forum](https://wordpress.org/support/plugin/family-wiki).**


## Screenshots

![1. A homepage showing a missing wiki page.](/assets/screenshot-1.png)
![2. A person page with a missing wiki page.](/assets/screenshot-2.png)
![3. Gutenberg view of a person page with the shortcodes.](/assets/screenshot-3.png)
![4. A 404 page exposing the "Create Page" link in the header.](/assets/screenshot-4.png)
![5. A person page with external links.](/assets/screenshot-5.png)
![6. A calendar page.](/assets/screenshot-6.png)
![7. Inserting a birthday calendar block.](/assets/screenshot-7.png)

## Changelog

### 1.2.0
- Add automatic infoboxes with structured marriages data.
- Add cross-wiki settings, allowing infoboxes to link to the same person or page on peer wikis.
- Add a Family Wiki menu and virtual calendar pages.
- Add citizenships and cache family wiki data for performance.
- Add wedding anniversaries to the family calendar.
- Add a Family Tree block.
- Add GEDCOM import and export support, including a review step for large files.
- Add a content export/import alongside GEDCOM, carrying related child pages along with a person.
- Fix a cross-wiki privacy leak.

### 1.1.9
- Translated ACF fields to German.
- Lots of translation fixes.
- Fix translation loading to translate.wordpress.org.
- Redirect to the front page after logging in.
- Improve output escaping.

### 1.1.0
- Switch to using Advanced Custom Fields for metadata.

### 1.0.0
- Initial version
