I’m making my own WP plugin, which has a text field containing some template, which I save to the database (table=templates, field=template), something like this:
<div class="myclass"> <p>Hello {$user_name}</p> </div>
Then I’m trying to show a message to a user:
<php $user_name = "Bob"; $template_query = 'select * from ' . $wpdb->get_blog_prefix(); $template_query .= 'templates where id='.$some_id; $template_data = $wpdb->get_row( $template_query, ARRAY_A ); $template = $template_data['template']; echo $template; ?>
And it is output “Hello {$user_name}” instead of “Hello Bob”
I can not get how to pass PHP variables to HTML throw the database.
I’ll be thankful for any help.
Advertisement
Answer
From the DB $template
will contain just a plain text string, not PHP.
You will have to replace the placeholder {$user_name}
in $template
with the value in $user_name
through PHP.
E.g.:
Instead of
echo $template;
Try:
echo str_replace('{$user_name}', $user_name, $template);
which will output:
Hello Bob
Also note that the ?
is missing from your opening <?php
tag.