I am in the process of implementing ios smart banners on our site, however we only want it to display on selected pages. I have set up an ACF text field, where I have the page IDs as a comma separated string ( eg: 1234, 1235, 1236, 1237 ).
In the functions.php file I have created the following function to add the metatag to the correct pages:
function enable_app_banner()
{
$enabledpages = the_field('allowed_pages', 'options');
if (is_page([$enabledpages])) {
echo '<meta name="apple-itunes-app" content="app-id=12345678">';
}
}
add_action('wp_head', 'enable_app_banner');
However this is not getting me the result I require, annoyingly it works when hardcoding in the values into the array as such;
if (is_page([1234, 1235, 1236])) {
echo '<meta name="apple-itunes-app" content="app-id=12345678">';
}
Any assistance would be greatly appreciated!
CodePudding user response:
As you mentioned you setup an ACF text field which gives you a comma separated string ( eg: 1234, 1235, 1236, 1237 ). but is_page()
method accepts array of IDs.
You have to convert the string into array first. Use explode()
method to do so:
function enable_app_banner() {
$enabledpages = the_field('allowed_pages', 'options');
// Using explode method to convert comma separated string into an array.
$enabledPagesArray = explode(', ', $enabledpages);
if (is_page($enabledPagesArray)) {
echo '<meta name="apple-itunes-app" content="app-id=12345678">';
}
}