How to output a php array of attributes as an html string in WordPress?

You can use PHP’s array_map function or loop through the array to generate the attribute string, and then insert it into the HTML markup. Here’s an example code:

<?php
$section_attrs = array(
    'id'         => '',
    'class'      => 'section-content',
    'aria-label' => 'Site content',
);

// Function to generate attributes
function render_attributes($attributes) {
    $result = '';

    foreach ($attributes as $key => $value) {
        if (!empty($value)) { // Ignore empty values
            $result .= sprintf('%s="%s" ', $key, htmlspecialchars($value, ENT_QUOTES));
        }
    }

    return trim($result); // Remove trailing space
}

// Generate attributes string
$attrs_string = render_attributes($section_attrs);

// Output the markup
echo '<section ' . $attrs_string . '></section>';
?>

Output:

<section class="section-content" aria-label="Site content"></section>

Explanation:

  1. Empty value check: We make sure that the attribute value is not empty to avoid generating empty attributes like id="".
  2. Escaping values: We use htmlspecialchars to prevent potential XSS vulnerabilities.
  3. String formatting: sprintf simplifies the assembly of the key="value" string.

If you need a more dynamic approach for other tags, this solution is easily adaptable.

How useful is the publication?

Click on a star to rate it!

Average score 5 / 5. Number of grades: 1

No ratings yet. Rate it first.

Similar posts

Why Files with Identical Content (*.js, *.php, *.css) Can Have Different Sizes?

When developers compare files with identical content but notice that their sizes differ, it can be perplexing. Let’s explore why this happens and what factors influence the size of files with extensions like *.js, *.php, and *.css. 1. File Encoding One of the key factors affecting file size is text encoding. The most common encodings…
Read more

How to transfer a site from dle to WordPress?

Transferring a website from DLE (DataLife Engine) to WordPress can be a complex process, especially if the site has a lot of content. Here’s a step-by-step guide: 1. Preparation 2. Export Data from DLE DLE uses its own database structure, so you’ll need to export data and convert it into a format compatible with WordPress:…
Read more