根据点击链接的href值查询不同的Wordpress页面

时间:2013-05-03 16:10:47

标签: php wordpress dynamic modal-dialog

我在页面上有一个链接列表,每个链接都链接到页面上div的id。我们的想法是,在点击时,会使用内联内容启动模式。

HTML如下:

<a href="#cardiacModal">Cardiac Care</a>
<a href="#emergencyModal">Emergency</a>
.... and many more

和模态:

<div style="display:none">
    <div id="cardiacModal">
        <?php query_posts( array('p' => 57, 'post_type' => 'directions') );
        if (have_posts()) : while (have_posts()) : the_post(); ?>
              <p><?php the_title(); ?></p>
        <?php endwhile; endif; ?>
    </div>

    <div id="emergencyModal">
        <?php query_posts( array('p' => 54, 'post_type' => 'directions') );
        if (have_posts()) : while (have_posts()) : the_post(); ?>
              <p><?php the_title(); ?></p>
        <?php endwhile; endif; ?>
    </div>
    ... and many more
</div>

总共有大约50个不同的链接触发50个单独的模态。在每个模态中,我使用php从特定的Wordpress页面中提取内容。现在,这个页面开始变得有点重量超过800行代码!

我正在寻找一种不同的方法 - 让一个单一模态与条件语句说,如果用户点击链接 x ,那么我们想查询页面ID x 在wordpress中。

我真的不确定最好的方法,或者甚至可能。我基本上寻找一种替代解决方案,以避免有50个模态 - 我宁愿有一个模态与逻辑控制哪些wordpress页面内容被拉出。

当前,我认为最好的解决方案是将每个模态放在一个单独的php文件中并使用jquery加载该ajax ......但我更喜欢另一种解决方案。想法?

2 个答案:

答案 0 :(得分:0)

您可以在同一页面中收到所有内容,例如“http://domain.com/clinic?c=cardiacModal”,因此,在您的页面中,您可以输入以下转换语句:

<?php
switch($_GET['c']){
   case 'cardiacModal' : $p = 57; break;
   case 'emergencyModal' : $p = 54; break;
   "..."
   default;
}
if(!empty($_GET['c']): ?>
 <div id="cardiacModal">
  <?php query_posts( array('p' => $p, 'post_type' => 'directions') );
    if (have_posts()) : 
        while (have_posts()) : the_post(); ?>
          the_title();
        <?php endwhile; 
    endif; ?>
  </div>
<?php endif; ?>

答案 1 :(得分:0)

我会为模态框内容页面创建一个超级准系统页面模板(基本上只是最小css所需内容的容器),然后将其作为iframe或AJAX传递到模态中。