【问题标题】:How to fix this WordPress function so that it doesn't return a 404 page?如何修复此 WordPress 功能使其不返回 404 页面?
【发布时间】:2011-03-06 18:53:42
【问题描述】:

我在 WordPress 的 functions.php 文件中添加了以下函数。这个想法是它收集“fsmodel”帖子的所有标题(我创建的自定义帖子类型)。然后它将这些作为数组返回,然后我用它来填充第二个自定义帖子类型的自定义元字段中的 select 标记。

基本上,“fsmodel”将发布带有船模型的帖子,而“fsboat”帖子类型将有一个下拉列表,其中包含可供选择的每个模型的名称。

现在,这似乎在仪表板中运行良好 - 下拉列表已按预期填充。但是,当我保存时,该帖子不会显示在“编辑”列表中。同样在网站上,当此功能激活时,所有页面都输出为 404 错误页面。

我确定问题出在以下代码中 - 有人知道我可能做错了什么吗?


函数 fs_model_array() {
$models_array = 数组();
$loop = 新的 WP_Query(数组(
    'post_type' => 'fsmodel',
    'posts_per_page' => -1,
    'orderby' => '标题',
    '订单' => 'ASC',
    'post_status' => '发布'
    ));
while ( $loop->have_posts() ) : $loop->the_post();
$models_array[] = get_the_title();
结束;
返回 $models_array;
};

【问题讨论】:

    标签: php wordpress function


    【解决方案1】:

    好的,我想出了一个解决方案(我希望 - 暂时可以解决)。

    我没有创建循环,而是使用 $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 作为 $model_db) {
        $models_array[] = $model_db->post_title;
    }

    再次感谢您的宝贵时间,hsatterwhite! :-)

    【讨论】:

      【解决方案2】:

      我想您可能会发现在函数末尾添加wp_reset_query() 会解决您的问题:)

      【讨论】:

      • 感谢您的意见。不幸的是,我之前尝试过,但没有帮助。
      【解决方案3】:

      问题是你在一个陌生的地方或者一个已经有循环的地方调用了 wordpress 循环?


      http://codex.wordpress.org/The_Loop

      【讨论】:

      • 感谢您的帮助,霞。我认为是这样,但我不清楚如何在受functions.php影响的循环之外运行它。不过,我的答案中的数据库查询解决了我的问题。
      【解决方案4】:

      我喜欢您的解决方案,但我倾向于说,每当您在函数中使用这样的循环时,您都需要调用 $post 的全局变量,因为它会将其分配给该变量。

      function fs_model_array(){
        global $post;
        $models_array = array();
        $loop = new WP_Query(array(
          ...
      

      【讨论】:

        猜你喜欢
        • 2017-05-23
        • 1970-01-01
        • 2021-10-27
        • 2018-04-03
        • 2016-01-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多