GET_POSTS查询结果无序,但在php代码段插件中显示正确

时间:2019-10-31 作者:CI_Guy

我有一个为自定义站点制作的小插件,其中一个新词将通过wp cron挑选。应在get\\u posts中选择并返回最旧(最低ID#)的自定义帖子类型。但是,它总是返回并选择该自定义类型的最新(最大的帖子ID)。

奇怪的是,如果我在XYZ PHP代码(允许您在仪表板中使用PHP生成短代码的插件)中尝试相同的查询,就会返回正确的结果。

以下是我在众多问题中尝试过的问题。我还尝试了“ID”、“date”、“date”以及“asc”的所有顺序,但都不起作用。在通过wp Crontrol尝试插件的新版本时,我还手动删除了以前的wp\\U schedule\\u事件。

//Schedule an action if it\'s not already scheduled
if ( ! wp_next_scheduled( \'wordss_cron_hook\' ) ) {
    wp_schedule_event( strtotime(\'2019-10-31 03:58:00\'), \'daily\', \'wordss_cron_hook\' );
}

///Hook into that action that\'ll fire daily
 add_action( \'wordss_cron_hook\', \'wordss_cron_function\' );

//create your function, that runs on cron
function wordss_cron_function() {
    //your function...
     $args = array(\'post_type\' => \'word\',
            \'post_status\' => \'publish\',
            \'category__not_in\'=>array(3,4),
            \'meta_key\'      => \'word_is_active\',
            \'meta_value\'    => true,
            \'suppress_filters\' => true,
            \'orderby\' => \'id\',
            \'order \'=>\'asc\',
            \'posts_per_page\' => 1
            );
        $posts = get_posts($args);



              if (count($posts) > 0) {
             $postid=$posts[0]->ID;
                $posttitle = $posts[0]->post_title;

                    $imageid=get_post_meta($postid,\'word_image\',true);
                $postimage=$imageid[\'guid\'];

                $obj[\'secondpost\'] = (object) array(\'posttitle\' => $posttitle,\'postid\'=>$postid,\'postimage\'=>$postimage);
                wp_set_post_categories($postid,array(3));
                update_option(\'saved_day_post\', $obj);
                wpfc_clear_all_cache(true);



        }
}

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

hate 告诉你这一点,但你有一个导致问题的拼写错误。\'order \'=>\'asc\', 应该是\'order\' => \'asc\',(注意\'order \' 字符串。)

如果不是这个问题,我会对中的所有文件进行字符串搜索wp-content 对于pre_get_posts 查看主题或插件是否正在更改查询。

相关推荐

How to use wp-ajax in wp-cron

我已经创建了一个自定义wordpress插件,其中我使用的是wp ajax。在类的\\uu构造中,我有一个操作(admin\\u footer),以便在wp之后使用wp\\u enqueue\\u脚本和wp\\u localize\\u脚本instructions因此,流程类似于php->js->和php我为什么这么做?避免内存限制错误。Here 说得很好:“上面的解决方案通过将单个大型任务分解为多个小型任务来绕过PHP的限制”一切都像一个后台的魅力!我的问题是如何管理此过程以与wp cron