将页面ID传递给wp_head / wp_footer

时间:2015-01-24 23:46:11

标签: php wordpress

我尝试做的是让用户在WordPress中编写帖子或页面时从下拉菜单中选择页面,然后将所选页面(user_selection)显示为额外的循环。

我拥有的是它,并且在主题中使用时效果很好:

<?php $user_selection = get_post_meta($wp_query->post->ID, 'user_selection', true); ?>
        <?php 
        $id = $user_selection; 
        $post = get_post($id); 
        $content = apply_filters('the_content', $post->post_content); 
        echo $content;  
        ?>    

但是当在插件中使用并添加到wp_head或wp_footer时,ID就不会被传递。我已经读过WordPress没有传递这样的变量,所以我(有点)卡住了。

如何解决这个问题的任何帮助都将不胜感激。

--------

更新。我使用以下方式开始工作:

<?php global $wp_query; $user_selection = get_post_meta($wp_query->post->ID, 'user_selection', true); ?>    
<?php $id=$user_selection;
$post = get_post($id);
$content = apply_filters('the_content', $post->post_content);
echo $content; ?>    

一切都很好,除了在已经存在的帖子上,幻灯片页面默认为当前帖子/页面(默认为无)。当帖子被保存,然后它可以工作,但这意味着重新保存所有帖子,这将是无稽之谈:)我缺少什么?

后端的

wp_dropdown_pages输入如下:

<?php wp_dropdown_pages( array( 'name' => 'user_selection', 'id' => 'user_selection', 'selected' => $selected, 'show_option_none' => '-- no selection --', 'option_none_value' => '-1' ) ); ?>    

谢谢!

----------

更新2。我想我明白了:

<?php global $wp_query; $user_selection = get_post_meta($wp_query->post->ID, 'user_selection', true); ?>
        <?php $var = 0; if (empty($user_selection)) { ?>
        NO SELECTION MADE
        <?php } else { ?>
            <?php 
            $id=$user_selection; 
            $post = get_post($id); 
            $content = apply_filters('the_content', $post->post_content); 
            echo $content;  
            ?>
        <?php } ?>   

感谢。

1 个答案:

答案 0 :(得分:0)

在传递信息的表单中,为示例 <input type='hidden' id='id' name='id' value='<php echo $post->ID;>?'/>添加隐藏的输入字段。您将能够查询ID。