do_shortcode()允许我在模板中的一行之前在内容中运行短代码吗?

时间:2016-02-24 06:21:05

标签: php wordpress shortcode

天啊,我试图通过PHP将Ajax Availability Calendar集成到WordPress网站。

我设置了多个日历,需要在每个属性页上显示不同的日历。

我遇到的问题是我需要能够指定ID,例如模板中$_GET["id_item"]=2语句之前的日历<?php require_once 'pathtofile' ?>

我需要达到的结果是......

<?php $_GET["id_item"]=2; require_once 'path\to\required.file'; ?>

如果我将此代码放入具有相应ID的模板中,则可以使用,但我需要在每个页面上更改ID号,否则我将始终显示ID为2的日历。

我目前有自定义短代码(下面),我可以在其中指定页面内容中的ID,但我不知道如何在模板中的语句之前访问该ID

所以我现在拥有的是......

在Functions.php中

function ajaxcalendar_shortcode($atts) {
    $args = shortcode_atts(
        array(
            'id_item' => 1
        ), 
        $atts
    );
return '<?php $_GET["id_item"]='.$id_item.'; ?>';
}
add_shortcode('cal_display', 'ajaxcalendar_shortcode');

在内容中使用短代码 [cal_display id_item = "2"]

甚至可以这样做,还是应该尝试其他方法? 我的研究表明,我可以使用do_shortcode()来实现这一目标,但我还没有弄清楚如何在这种情况下使用它,或者我可能会误解它的目的。

我已尝试将此放入页面模板文件中

 <?php $content = the_content(); echo do_shortcode($the_content); ?>
 <?php require_once 'C:\xampp\htdocs\MooreRiver\availability\ac-includes\cal.inc.php'; ?>

但它继续显示ID为1的日历。

任何提示将不胜感激:)

0 个答案:

没有答案