Tag: Wordpress

  • What’s Coming in WordPress 7.0: A Look at the New Features and Improvements

    WordPress has come a long way from its humble beginnings as a blogging platform. With every major release, it continues to evolve into a more powerful and user-friendly content management system. As we look ahead to WordPress 7.0, set for release later this year, the core team has announced some exciting new features that promise to enhance both the user and developer experience.

    Here’s a breakdown of what’s coming in WP 7.0 and why it matters.

    Full-Site Editing (FSE) Gets Smarter

    While Full-Site Editing was introduced in previous versions, WP 7.0 will refine and expand its capabilities. Expect:

    – Smarter block-based theme tools
    – Global style variations that make switching between designs seamless
    – Improved template browsing and creation directly from the Site Editor
    – Enhanced navigation block customization, finally matching the flexibility of traditional menus

    These updates are designed to give both designers and non-coders greater control over site appearance—without needing to touch PHP.

    Performance Boosts

    Performance remains a top priority, and version 7.0 introduces several under-the-hood improvements:

    – Improved object caching, especially for REST API responses
    – Enhanced lazy loading for images and iframes, reducing page load times
    – A new defer” attribute added to script loading for better Core Web Vitals
    – Database query optimization in multisite setups

    Whether you’re running a blog or a WooCommerce store, these enhancements will help your site run faster and smoother.

    Block Editor Enhancements

    The Gutenberg editor gets a significant upgrade with:

    – New blocks: Table of contents, image comparison, progress bar
    – Block-level revisions, letting you revert changes to individual blocks
    – Improved drag-and-drop functionality and block locking to prevent accidental edits
    – Better accessibility and keyboard navigation throughout the editor

    The block editor continues to mature into a more intuitive page builder, closing the gap with premium solutions.

    Better Security and Access Control

    Security updates in WordPress 7.0 include:

    – Role-based block access, so certain blocks can be hidden from non-admin users
    – Tighter REST API permission checks
    – Support for passkeys as a login method
    – Continued work toward Core auto-updates by default, reducing risk on neglected installs

    Security-conscious users will appreciate these thoughtful additions.

    Plugin and Theme Developer Improvements

    For developers, WordPress 7.0 brings:

    – New interactivity API for building dynamic blocks without React overhead
    – Script module support type=”module”
    – Better block style registration and tooling in the theme.json
    – Early support for PHP 9.0 compatibility checks

    These improvements not only modernize development workflows but also lay the groundwork for future innovation.

    Multilingual Support on the Horizon?

    One of the most requested features—native multilingual support—is finally getting traction. While full support may not land in 7.0, early groundwork is being laid. Expect:

    – Language switching APIs for developers
    – Basic language context awareness in block themes
    – UI components that will make it easier to build multilingual plugins

    It’s a strong hint that core multilingual capabilities may be included in future 7.x releases.

    WordPress 7.0 isn’t just about adding flashy features—it’s about refining the experience, improving performance, and moving closer to a modern, decoupled CMS. Whether you’re a blogger, developer, or agency, this release is shaping up to be one of the most impactful updates in recent memory.

  • Matt vs WP Engine: Open-source ethics versus commercial enterprise

    Matt Mullenweg’s frustration with WP Engine seems to stem from two key issues: WP Engine’s monetization practices and its contribution to the WordPress community. His criticisms are centered on the fact that WP Engine, while profiting heavily from the WordPress ecosystem, allegedly doesn’t support or contribute enough to its open-source foundation. This is important because WordPress is built on a collaborative, open-source philosophy, and Mullenweg likely sees WP Engine’s approach as undermining those values.

    However, WP Engine argues that they are acting within the bounds of open-source usage, suggesting that they have the right to use WordPress’s trademark without additional licensing fees. They also push back on Mullenweg’s claims, asserting that they provide significant value to users and that their business practices are in line with the expectations of their customers.

    From Mullenweg’s perspective, his stance could be seen as reasonable if you consider the long-term sustainability and fairness of open-source projects. He may see WP Engine’s actions as detrimental to WordPress’s community-driven spirit, especially when a commercial entity profits without contributing back. However, calling WP Engine a “cancer” might be viewed as overly harsh, particularly when many WP Engine customers feel satisfied with the services they provide .

    In essence, the reasonableness of Mullenweg’s actions depends on one’s perspective on open-source ethics versus commercial enterprise. If you value strict adherence to open-source principles, Mullenweg’s stance may resonate. However, if you view WordPress as a platform open to free-market usage, WP Engine’s approach might seem justified.

  • Formidable: Adding Dynamic Link to Parent Values in a View with Child (Repeater) as the Source.

    There are instances that you need to add a dynamic link to a Formidable Form view when your data source is the child table, instead of the parent table. Here’s a javascript snippet that will do the magic.


    function load_jquery() {
    wp_enqueue_script("jquery");
    }
    add_action('wp_enqueue_scripts', 'load_jquery');

    function custom_href_shortcode_fix() { ?>

    To ensure the modification of links applies to all pages of a jQuery DataTable and not just the first, we must utilize DataTables' callback functions to reapply our changes after every table draw (which occurs on pagination, searching, or ordering). Because DataTables rebuilds the elements in the table when you paginate or change the data view, changes made to the DOM are lost after the initial page load. Here's how you can adapt your JavaScript to handle this situation:

    1. First, ensure DataTables is loaded and initialized on your table. I'm going to assume you've done that as part of your setup since you mentioned you're working with jQuery DataTables.

    2. Modify your `custom_href_shortcode_fix` function to use DataTables' `drawCallback` option to reapply custom link configurations after every draw.

    Here's an example update for your code:


    function custom_href_shortcode_fix() { ?>

    A few key points:

    - Ensure you have your DataTables initialized in the script where you're implementing the `drawCallback`. Replace `'#yourTableId'` with the actual ID of the table you are using.
    - The `drawCallback` option is used here to specify a function that is called whenever the table is drawn on the page, including when the page is changed, sorted, or filtered.
    - We've included the initial application of the link modification logic outside of the `drawCallback` as well to ensure it's applied when the page first loads, before any DataTable actions may trigger a redraw.

    Make sure you replace the specific selectors and IDs (`'#yourTableId'` and `'a.dynamic-href'`) with ones that match your HTML structure and requirements.

    What if you encounter the error Cannot reinitialise DataTable?

    The error message "Cannot reinitialise DataTable" typically indicates that DataTables has been initialized on an element more than once. This is a common issue when attempting to apply DataTables configurations dynamically or when the page's state changes without proper cleanup.

    Given the context of your setup, where you might not control the initial initialization of the DataTables (especially in WordPress environments where plugins or themes might automatically apply DataTables to certain elements), we need to approach this with a method that checks if a DataTable instance already exists on an element and only apply modifications without reinitializing.

    Let's adjust your code to handle this scenario. Since you're working with a class selector and you might not be able to directly control the DataTable initialization process, you can use the `$.fn.dataTable.isDataTable()` function to check if an element is already initialized as a DataTable. Here's how you could modify your script:


    function custom_href_shortcode_fix() { ?>

    Additional adjustments:

    1. I wrapped the DataTable initialization in a check using `$.fn.dataTable.isDataTable()` to prevent reinitializing an already initialized DataTable.

    2. I kept the original logic for applying the hyperlink modifications outside the initialization block, which means it will run on page load for all matching elements immediately.

    3. I added an event listener `draw.dt` to the table, which DataTables triggers after each draw. This is useful if your tables are being modified or interacted with dynamically after the initial page loads. This ensures that your `href` modifications are reapplied after actions like pagination, searching, or sorting.

    Please ensure you replace `.yourTableClass` and `'a.dynamic-href'` with the actual selectors used in your project.

  • WordPress 6.4 first impressions!

    WordPress 6.4 was released today and here are my first impressions. It’s cool and it’s fast and I love the modern Twenty Twenty four theme! Other features include the following.

    User Experience Improvements: WordPress tends to focus on refining the user experience with each update. My first impressions might include appreciation for a more streamlined interface, smoother navigation within the dashboard, and enhancements to the site-building experience provided by the block editor (Gutenberg).

    Block Editor Enhancements: With every release, the Gutenberg block editor usually receives new features or improvements. I might notice new blocks, block patterns, or improved handling of media elements within the editor that further simplify the content creation process.

    Performance Enhancements: WordPress developers continuously work to optimize the script loading and database queries for a faster experience. Thus, my first impressions could include faster page load times and more efficient backend performance.

    Full-Site Editing Features: Since the incorporation of full-site editing (FSE) functionality, users expect robust enhancements in this area. Any improvements to the site editor, template creation, and global styles would stand out as significant to me.

    Accessibility: Given WordPress’s commitment to making the web accessible to everyone, I might be impressed by newly introduced features or improvements that make the CMS more accessible for users with disabilities.

    Default Theme – Twenty Twenty-Four: Typically included with a new major WordPress release is a default theme that showcases the latest features. I would be eager to see the aesthetics and functionality of the Twenty Twenty-Four theme, expecting a design that is both modern and optimized for a wide range of use cases.

    Developer Tools and Hooks: As a developer, I might look for new APIs, hooks, or enhanced coding tools that allow for more extensive customizations and integrations, enabling developers to build more robust themes and plugins.

    Can’t wait to explore the rest of the new features in 6.4.

  • Divi Blog Grid breaks when Minify JavaScript Files is enabled

    If you’ve noticed that your Divi blog grid breaks after you enable JS minifaction using any plugin, then you just need to exclude the custom.js from /themes/Divi/js/custom.js to be minified. This will fix the issue.

    I haven’t checked what’s in this Javascript file yet that doesn’t want to be minified, but that fixes the problem anyway.

    I encountered this first when I enabled Minify JavaScript Files using SG Optimizer plugin. Not sure if it’s the same issue with other minification plugins, but I suppose it is.

    For other Divi issues or question you may have, please don’t hesitate to leave a comment below. I will gladly help you out.

  • Better late than never! Just upgraded to WP 5.7!

    Yep, I do manual updates and I recently updated this WP blog to the latest version, which is 5.7. On a user’s perspective, nothing seems to be new as I’m using the classic editor. I hate the Gutenberg editor and they have a new one now, it seems like Gutenberg, but an improved one.

    Automattic also said that the dashboard has a simplier color palette. But I didn’t notice any significant difference. Only the button seems to be using a lighter blue color compared to the blue color before.

    As you can see in the screenshot below, nothing’s really new.

    Looking forward for more WordPress updates in the future. For now, I’ll still be using the classic editor. It’s simple, it’s clean, and it’s classic. No other drag and drop gimmicks, just plain old text and plain old code. You can actually do whatever you want with no code bloat vs dnd page/post editors.

  • WordPress Theme with Dark Mode using the 2021 Theme!

    WP default themes keep on getting better and better. Now with the default Twenty Twenty-One theme, you have an option to support dark mode. Then you can toggle it on and off using the button on the lower part of your screen.

    BryanVeloso.com is now using the latest default theme for 2021. It’s a one column with 3-column footer for widgets. It’s pretty straightforward, simple and fast. You can add your logo in the header, and that same logo appears in the lower left part of your footer.

    Simplicity is what makes this blog theme special. You can also make your post show the full posts by default, or just an excerpt of your blog post in the customization settings. No need to add “read more” on every blog post you make.

    This theme is simple, fast, elegant, and modern. You’ll love it if you’re a minimalist like me. The default light mode and dark mode colors adapt well in all colored logos with transparent background.

    I didn’t adjust me logo color anymore to adjust with the theme’s default color options. It simple works, good to the eyes, and UI is fantastic.

    I’ll be using this theme for the entire year of 2021 until the WordPress Twenty Twenty-Two theme is released.

  • JetPack is getting smarter and smarter

    Recently today, I upgraded my PHP version to 7.4.4. After a few minutes, I received an e-mail that my website is offline. It says that “Your Site is Experiencing a Technical Issue”. But good thing, I have JetPack. Gone are the days when your WordPress website is down or just blank white, and you don’t know what to do.

    Now, non-living things are getting smarter and smarter. I now know why my website is down and what’s the root cause of the issue. No need to troubleshoot it anymore. You’ll receive a link to enter your website in “recovery mode”, and you will also receive via e-mail all the details about which plugins caused the issue.

    Mine was this:

    Current plugin: Audio player (version 2.0.4.6)

    Error Details
    =============
    An error of type E_PARSE was caused in line 903 of the file /wp-content/plugins/audio-player/audio-player.php. Error message: syntax error, unexpected ‘new’ (T_NEW)

    So I just went ahead to my server and deleted that specific plugin that I don’t even use anymore. And eureka! My website is back online! Easy peasy right?