How to include block style variations for blocks in posts dynamically rendered via the Interactivity API

Block variation styles are parsed and processed through wp_render_block_style_variation_support_styles(). This is marked as private and thus should not be called by third-party code outside WordPress core. This function is called by virtue of being hooked into the render_block_data hook. Thus, if you have a subset of known block structures that may appear, you could consider … Read more

Can you open a media frame to sellect an attachment to associate with another attachment you are editing on an existing media frame?

I figured this out. You CAN open another frame Here is my code: jQuery(document).ready(function ($) { var frame; frame = wp.media(); $(document).on(‘click’, ‘.compat-field-add_attachment input’, function (e) { get_attachment(frame); }); }); function get_attachment(frame) { // Create the media frame. frame = wp.media.frames.meta_image_frame = wp.media({ // Tell the modal to show only images. library: { type: ‘image’ … Read more

Hide or Show Read More Button by Content Area

This checks the number of characters and hide the button server-side in content.php: <?php $excerpt = get_the_excerpt(); $excerpt_length = strlen($excerpt); $excerpt_limit = 100; // Match the limit set in functions.php // only for debugging: var_dump($excerpt); var_dump($excerpt_length); ?> <div class=”news-main”> <?php the_excerpt(); ?> </div> <?php if ($excerpt_length >= $excerpt_limit) : ?> <div class=”news-read”> <a href=”<?php echo … Read more

WordPress custom post_status after 6.6 version

Can you post your js or try this? import { addFilter } from ‘@wordpress/hooks’; addFilter( ‘editor.PostStatus.statuses’, ‘sq/add-custom-post-status’, // custom filter name (statuses) => { return [ …statuses, // save old statuses { // add new status slug: ‘prepare’, label: ‘Prepare’, labelShort: ‘Prepare’, public: false, }, ]; } );

How to inject right sidebar on post edit page?

I did not support this because of the difficulty of implementation. However, Gutenberg is made with ReactJS, and a slot called PluginPostStatusInfo is provided, so it seems possible to inject your own React elements by using this slot. https://github.com/WordPress/gutenberg/blob/trunk/docs/reference-guides/slotfills/plugin-post-status-info.md

How to render initial posts on page load in a Gutenberg block using the Interactivity API?

You could consider running actions.getPosts on mount via data-wp-init like: <div … data-wp-init=”actions.getPosts”> As per the documentation: This directive runs a callback only when the node is created. You could also consider server-rendering the initial set of posts, like: <div data-wp-watch=”callbacks.renderContent”> <?php $query = new WP_Query( array( … ) ); ?> <?php while( $query->have_posts() ) … Read more

Pass WP data to javascript

The most direct answer to your question as it stands is “yes” – there are many ways to acquire data from WordPress without embedding it in the page’s markup or an inline <script> generated via wp_add_inline_script()/wp_localize_script(). A couple of options would be to have your JavaScript make a web request to the REST API (either … Read more

Pass global variable data to localize_script

The issue you’re encountering is related to the execution order in WordPress. Global variables in WordPress are request-specific and are not preserved across different requests or different parts of a request unless they are included within the same scope. The wp_enqueue_scripts action runs before the template file is executed, hence your $product_filter_data array is still … Read more

Function to filter numbers from string

You could use PHP’s preg_replace() to wrap all the numbers (ie, any successive combination of 0 through 9) in a <span> tag. add_filter( ‘the_content’, ‘wpse426625_number_wrapper’ ); /** * Wraps any number in the content in a <span> tag. * * @param string $content The post content. * @return string The content with the numbers wrapped … Read more