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

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