您根据Wordpress Docs正确使用了该功能,但您的 PHP 已关闭。当 php 已经打开时,您有<?php打开标签,匹配也不需要的结束标签,并且您缺少分号。
<?php
if ( is_page(545) ) { echo do_shortcode('[scrapeazon asin="Product1"]'); }
elseif ( is_page(525) ) { echo do_shortcode('[scrapeazon asin="Product2"]'); }
else ...
?>
单行执行不需要花括号,但为了突出显示错误,我留下了它们。
有一种更清洁的方法可以做到这一点
<?php
$pages=array(
545=>'Product1',
525=>'Product2',
567=>'Product3',
568=>'Product4',
// etc
// etc
);
foreach ($pages as $page_id=>$asin){
if (is_page($page_id)) {
echo do_shortcode('[scrapeazon asin="'.$asin.'"]');
break; // because you used elseif you must want to stop checking ids after finding one is a page
}
}
?>
尽管一次选择所有页面并循环遍历该数组可能更快,并且为您的数据库工作更少。