首页 文章

在WordPress中使用WP_Query和自定义SQL

提问于
浏览
2

我正在为wordpress编写一个插件,我想创建自己的搜索 . 我试图改变wordpress搜索,但我正在做的是非常具体的SQL查询 . 我正在比较纬度和长坐标并根据它得到帖子 .

我可以使用标准的wpdb查询显示帖子,但是我没有得到分页等其他功能 . 我希望能够将我的SQL语句与WP_Query函数一起使用 . 如果我思考正确,那么我应该能够使用来自$ posts全局变量的分页和其他功能 .

这是正确的吗??我用谷歌搜索了几个小时,但是除了使用args选择类别之外,找不到任何插件 . 我只需要发送一个完整的SQL命令 - 没有别的 .

非常感谢....

3 回答

  • 1

    您最终可能无法获得最佳的SQL查询,但如果您获得了要使用的所有帖子ID的数组(首先使用您自己的SQL),那么使用 WP_Query 以及参数 post__inposts_per_page ,WordPress将为您处理一切(包括SQL限制,分页等) .

  • 4

    为了任何人发现这一点,从WordPress 3.1开始,您现在可以使用过滤器直接更改$ wp_query使用的SQL . See codex for more info.

  • 2

    有一个名为 posts_where_paged 的过滤器,它将为您提供SQL查询的WHERE部分_2974757改变WordPress加载页面的方式,您只需更改它从数据库中检索的数据 .

    如果您在搜索期间查询的正常表集中的数据,那么您还必须使用 posts_join_paged 过滤器更改正在查看的表 . (至少我认为那是那个;))

    查看wp-includes / query.php的第2376行,查看可用于修改数据库查询的过滤器 .

相关问题