2010-06-22 99 views
1

我已将以下函数添加到WordPress的我的functions.php文件中。这个想法是,它收集'fsmodel'职位的所有标题(我创建的自定义职位类型)。然后,它将它们作为数组返回,然后我使用该数组填充第二个自定义帖子类型的自定义元字段中的选择标签。如何解决这个WordPress功能,以便它不返回404页面?

基本上,'fsmodel'将有一个船模型的职位,'fsboat'职位类型将有一个下拉列表,每个模型的名称可供选择。

现在,这似乎在仪表板中正常工作 - 下拉列表按预期填充。但是,当我保存时,该帖子不会显示在编辑列表中。同样在网站上,当此功能处于活动状态时,所有页面将作为404错误页面输出。

我确定问题在于下面的代码 - 有没有人知道我可能做错了什么?


function fs_model_array() { 
$models_array = array(); 
$loop = new WP_Query(array(
    'post_type' => 'fsmodel', 
    'posts_per_page' => -1, 
    'orderby' => 'title', 
    'order' => 'ASC', 
    'post_status' => 'publish' 
    )); 
while ($loop->have_posts()) : $loop->the_post(); 
$models_array[] = get_the_title(); 
endwhile; 
return $models_array; 
};

回答

0

好吧,我想出了一个解决方案(我希望 - 它现在暂缓)。

而不是创建一个循环,我刚刚使用$ wpdb-> get_results在自定义帖子类型中使用WHERE过滤器搜索数据库的列。再次感谢您的时间

$models_array = array(); 
$model_db = $wpdb->get_results("SELECT post_title FROM $wpdb->posts WHERE post_type='fsmodel' AND post_status = 'publish'"); 

foreach ($model_db as $model_db) { 
    $models_array[] = $model_db->post_title; 
}

感谢,hsatterwhite:

然后运行一个数组建设者! :-)

0

这是最近问。点击here查看专家的评论。祝你好运:)

+0

感谢试图帮助 - 不幸的是,这并没有解决它。这与您链接到的页面上的问题并不完全相同 - 我也为现有的WP页面获得了404错误,即。那些使用page.php,index.php等的 – 2010-06-22 13:53:52

+0

有趣。你有没有试过检查你的.htaccess文件中的永久链接设置?您可以通过设置 - >固定链接来重置这些参数。 – hsatterwhite 2010-06-22 14:20:41

+0

我做了,谢谢 - 虽然没有解决问题。 – 2010-06-28 16:03:00

0

我想你可能会发现添加wp_reset_query()你的函数结束时将解决你的问题:)

+0

感谢您的输入。不幸的是,我曾尝试过,并没有帮助。 – 2010-06-28 16:03:31

0

的问题是,你是在一个陌生的地方或一个地方,已经调用WordPress的循环有一个循环)?


http://codex.wordpress.org/The_Loop

+0

谢谢你的帮助,Kasumi。我认为是这种情况,但是我不清楚如何在受到functions.php影响的循环之外运行它。尽管我的答案中的数据库查询解决了我的问题。 – 2010-06-28 16:04:59