在自定义meta中使用循环会搞砸‘添加新的’帖子类型

时间:2012-06-04 作者:Zach Lysobey

当我在(wpalchemy) 自定义元框,一切正常。直到我按下“添加新内容”。此时,标题、slug、特色图片等。。正在使用我的“产品”帖子类型中的内容进行预填充。

代码在我的“案例研究”帖子类型中构建了一个下拉列表,并用我的“项目”帖子类型中的帖子标题/ID填充它。

我怎样才能像这样在后端使用循环,而不把事情搞砸。我试过了get_posts 以及WP\\U查询。

global $post;
$args = array( \'post_type\' => \'projects\', \'posts_per_page\' => 200 );
$custom_posts = get_posts($args);

foreach($custom_posts as $post) : setup_postdata($post);
  echo \'<option value="\' . get_the_id() . \'"\';
  echo \'>\' . get_the_title() . \'</option>\' . "\\n";
endforeach;

Edit: A little more background:

我正在使用wpalchemy 自定义元框的类。以下代码包含在我的函数中。php文件,之后/wpalchemy/MetaBox.php https://github.com/farinspace/wpalchemy/blob/dev/wp-content/wpalchemy/MetaBox.php

$assoc_project = new WPAlchemy_MetaBox(array(
    \'id\' => \'_assoc_project\',
    \'title\' => \'Associated Project\',
    \'template\' => get_stylesheet_directory() . \'/metaboxes/case-studies-assoc_proj-meta.php\',
    \'types\'=> array(\'case-studies\')
));

Edit 2: Update

我曾尝试在我的电脑上跨多个浏览器复制这个问题,但我的同事刚刚在Ffox/mac上进行了一次尝试,他们没有问题。我不明白为什么这会是特定于平台的-但这就是。。。

2 个回复
最合适的回答,由SO网友:Milo 整理而成

创建自定义循环后,需要使用wp_reset_query().

SO网友:Zach Lysobey

好吧,我自己解决的。而不是get_postsWP_Query 我使用自定义的select查询作为explained here

我的修订代码:

<select name="<?php $mb->the_name(); ?>">
    <?php 
    global $wpdb;
    $selected = \' selected="selected"\';
    $querystr = "
       SELECT $wpdb->posts.post_title,  $wpdb->posts.ID
       FROM $wpdb->posts
       WHERE $wpdb->posts.post_type = \'projects\' 
       AND $wpdb->posts.post_status = \'publish\' 
       ORDER BY $wpdb->posts.post_name DESC
    ";
    $assocProjQuery = $wpdb->get_results($querystr, OBJECT);
    foreach($assocProjQuery as $ap):
        echo \'<option value="\' . $ap->ID . \'"\';
            if ($mb->get_the_value() == $ap->ID ) echo $selected;
        echo \'>\' . $ap->post_title . \'</option>\' . "\\n";
    endforeach;
    ?>
</select> 

结束

相关推荐

无法使用wp_EDITOR()从WPAlChemy metabox获取<p>标记

我正在一个项目中使用WPAlchemy。对于一个模板,我需要使用一个自定义的metabox,它可以很好地与tinyMCE编辑器配合使用。在模板上插入元框的代码(这是https://github.com/helgatheviking/WP-Alchemy-Holy-Grail-Theme/ 因为我在一次Loooog搜索后最终尝试了它,但是macache。<div class=\"my_meta_control metabox\"> <p> <?php $mb-&