Issue
- Create a web content with a description containing a single quote (')
- In the content template, the description is retrieved and added as a meta tag in the head section of the page using the following code.
<@liferay_util["html-top"]>
<meta property="og:description" content='${description}'>
</@>
- This results in misplaced text and links at the beginning of the page.
Environment
- Liferay DXP 7.4+
Resolution
The problem originates from custom theme template code generating meta tags where single quotes in description conflict with the quotes delimiting the content
attribute.
To fix this, escape description
variable using the htmlUtil.escape()
method within your custom template. For instance, modify the following custom code:
<@liferay_util["html-top"]>
<meta property="og:description" content='${htmlUtil.escape(description)}'>
</@>
This escapes special characters, preventing HTML structure issues in meta tags.