Skip to content

WordPress plugin

The plugin (Diazoma Wall for WordPress) publishes your posts, and WooCommerce products, as a wall. It needs PHP 8.1 or newer and WordPress 6.0 or newer. It adds:

  • GET /wp-json/diazoma/v1/feed?type=post&cursor=&q=&limit=, a feed with keyset paging (limit defaults to 50, at most 100);
  • /.well-known/wall.json, a manifest built from the settings;
  • <link rel="wall-manifest"> and <link rel="wall-feed"> in wp_head;
  • an optional /xr page that prints the embed <script> tag.
  1. Copy the plugin directory to wp-content/plugins/diazoma-wall.
  2. If you cloned the repository, run composer install --no-dev inside it. Without vendor/ the plugin falls back to a built-in loader and still works.
  3. Activate the plugin. Activation flushes the rewrite rules.
  4. Open Settings, Diazoma Wall and choose:
    • the post types to publish;
    • the accent colour (a warning shows when its contrast is below 4.5:1);
    • the policy (allow, deny or recipes-only);
    • whether to serve the /xr page;
    • the script base URL: the directory that holds diazoma-embed.js and wall.iife.js.

Only public post types can be requested. A non-public type returns 403 and an unknown one returns 400.

The manifest passes through the diazoma_wall_manifest filter just before it is served. Use it to add a view: action buttons, the info panel, rows, colours and texts. The shape and limits are in View customization.

add_filter( 'diazoma_wall_manifest', function ( array $manifest, array $settings ): array {
$manifest['view'] = array(
'wall' => array( 'rows' => 4 ),
'theme' => array( 'colors' => array( 'accent' => '#c9334f' ) ),
);
return $manifest;
}, 10, 2 );

A filter that does not return an array is ignored.

Many nginx configurations deny dotfiles with location ~ /\. { deny all; }. That also blocks /.well-known/wall.json. Add an exception before that rule:

location ^~ /.well-known/ {
try_files $uri /index.php?$args;
}

Apache needs no change with the standard WordPress .htaccess.