yard/query-block

A query block for the Gutenberg editor.

Installs: 15

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 2

Forks: 0

Open Issues: 5

Language:JavaScript

Type:package

pkg:composer/yard/query-block

v1.2.0 2025-11-17 08:30 UTC

README

Code Style PHPStan Tests Code Coverage Badge Lines of Code Badge

An acorn package providing a "Query Block" for the Gutenberg editor.

Requirements

Installation

  1. Install this package with Composer:

    composer require yard/query-block
  2. Run the Acorn WP-CLI command to discover this package:

    wp acorn package:discover

Usage

When this package is installed, you can insert the “Berichtenlijst” block in the Gutenberg editor. This block lists a series of posts based on different filter settings in the admin.

Templates

Override Default Template

A default template is included in the package. You can publish the template to your project with:

wp acorn vendor:publish --provider="Yard\QueryBlock\QueryBlockServiceProvider"

This will copy the view default.php from this package into your project at /sage/resources/views/vendor/yard-query-block/templates/default.blade.php. You can now modify the default template as desired.

Create Aditional Templates

You can create additional templates by placing a template file in the same directory. For example:

/sage/resources/views/vendor/yard-query-block/templates/horizontal.blade.php

Add the template name as a comment at the top of this template file like this:

@php
/**
 * Template: Horizontal
 *
 * @var Illuminate\Support\Collection|Yard\Data\PostData $postDataCollection
 * @var Yard\QueryBlock\Block\BlockAttributes $attributes
 */
@endphp

Now, you will be able to select the template from the editor. The name of the template is displayed using the value in your docblock.

Hooks

JavaScript filters

yard.query-inspector-config

Customize which controls are displayed in the block's inspector panel.

import { addFilter } from '@wordpress/hooks';

addFilter(
    'yard.query-inspector-config',
    'yard.query-inspector-config',
    ( config, attributes ) => {
        return {
            ...config,
            showPostTypeSelectControl: false, 
            showNumberOfPostsRangeControl: false,
        };
    }
);

yard.query-exclude-post-types

Exclude specific post types from the list of available post types.

import { addFilter } from '@wordpress/hooks';

addFilter(
    'yard.query-exclude-post-types',
    'yard.query-exclude-post-types',
    ( excludedPostTypes ) => {
        return [
            ...excludedPostTypes,
            'healthcare-provider',
            'location',
            'page',
        ];
    }
);

yard.query-exclude-taxonomies

Exclude specific taxonomies from the list of available taxonomies.

import { addFilter } from '@wordpress/hooks';

addFilter(
    'yard.query-exclude-taxonomies',
    'yard.query-exclude-taxonomies',
    ( excludedTaxonomies ) => {
        return [ 'category', 'post_tag' ]; 
    }
);

yard.query-min-number-of-posts and yard.query-max-number-of-posts

Customize the minimum and maximum value for the posts per page range.

import { addFilter } from '@wordpress/hooks';

addFilter(
    'yard.query-max-number-of-posts',
    'yard.query-max-number-of-posts',
        (defaultMax, attributes) => {
        const postTypeValues = attributes.postTypes?.map((type) => type.value) || [];
        
        if (postTypeValues.includes('news')) {
            return 5;
        }

        if (postTypeValues.includes('healthcare-provider')) {
            return 2;
        }

        return defaultMax;
    }
);

yard.query-post-type-select-control-is-multi

Change the post type select control from multi to single select.

import { addFilter } from '@wordpress/hooks';

addFilter(
    'yard.query-post-type-select-control-is-multi',
    'yard.query-post-type-select-control-is-multi',
    () => false
);

PHP filters

yard_query_block_post_query

Filters the Post Query before it is executed on the database.

Parameters Type Description
$query \Corcel\Model\Builder\PostBuilder The query object
$attributes \Yard\QueryBlock\Block\BlockAttributes The block attributes
Return Type Description
$query \Corcel\Model\Builder\PostBuilder The query object

Example:

add_filter('yard_query_block_post_query', function ($query, $attributes) {
    if (is_user_logged_in()) {
        return $query;
    }

    return $query->hasMeta('post_is_public', 'yes');
}, 10, 2);

About us

banner