我尝试做的是让用户在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 } ?>
感谢。
答案 0 :(得分:0)
在传递信息的表单中,为示例 <input type='hidden' id='id' name='id' value='<php echo $post->ID;>?'/>
添加隐藏的输入字段。您将能够查询ID。