Implement a webhook endpoint into a plugin

you can create a new API route like that : add_action(“rest_api_init”, function () { register_rest_route( “test_api” , “reading_http_json” , [ “methods” => WP_REST_Server::EDITABLE, // POST PUT PATCH “callback” => function (WP_REST_Request $request) { $body = file_get_contents(“php://input”); $json = json_decode($body, TRUE); // here you have data in the array $json return NULL; }, “permission_callback” => fn … Read more

Custom Gutenberg blocks not showing in WP editor

The import syntax only works if you are using a build system (the npm/npx stuff). If you don’t want to use that right now, you can replace the import with wp.<module> like: const { registerBlockType } = wp.blocks; registerBlockType(‘custom-blocks/simple-block’, { edit: () => ‘abc’, save: () => ‘abc’ }); Or directly like: wp.blocks.registerBlockType(‘custom-blocks/simple-block’, { edit: … Read more

How to change WP Query to display related posts

I wrote the code and it works but when I add another Query Loop block (latest posts) to that page it shows the related posts. That happens because although your filter callback is registered only when blockName is related-posts, the query_loop_block_query_vars hook still applies globally to all Query Loop blocks rendered after that. How do … Read more

Is there a is_ function for sitemaps?

There is no is_sitemap() core function in WP < 6.8, but there is a ticket for it here. The rewrite rules for the sitemap (src) use e.g. the sitemap query variable: add_rewrite_rule( ‘^wp-sitemap\.xml$’, ‘index.php?sitemap=index’, ‘top’ ); add_rewrite_rule( ‘^wp-sitemap-([a-z]+?)-([a-z\d_-]+?)-(\d+?)\.xml$’, ‘index.php?sitemap=$matches[1]&sitemap-subtype=$matches[2]&paged=$matches[3]’, ‘top’ ); add_rewrite_rule( ‘^wp-sitemap-([a-z]+?)-(\d+?)\.xml$’, ‘index.php?sitemap=$matches[1]&paged=$matches[2]’, ‘top’ ); The get_query_var( ‘sitemap’ ) is checked within the template_redirect … Read more

add_rewrite_rule – how to match exact whole word only?

Here’s the updated code with the explanation and last two lines added: Updated Code with Last Two Lines add_action(‘query_vars’, ‘add_query_vars’); function add_query_vars($vars) { $vars[] = ‘verify’; // Add ‘verify’ as a query variable return $vars; } add_action(‘init’, ‘verify_add_rewrite_rule’); function verify_add_rewrite_rule() { // Use ^verify/?$ to strictly match “verify” and ensure it ends there add_rewrite_rule(‘^verify/?$’, ‘index.php?verify=1&post_type=page’, … Read more