不带查询获取参数的WordPress WP_QUERY

时间:2017-07-24 作者:Buga1234

我在页面上有过滤器插件。我通过快捷码预设和查询字符串参数得到生成的SQL查询。

因此,我想获取SQL查询,而不受查询字符串get params的影响。

例如我有一个页面url,其中有一个过滤器。

1 example

https://example。com/快照/

所以如果我有这样的url。WP\\U查询生成此SQL查询

SELECT SQL_CALC_FOUND_ROWS  wp_posts.ID FROM wp_posts  LEFT JOIN wp_term_relationships ON (wp_posts.ID = wp_term_relationships.object_id) WHERE 1=1  AND ( wp_term_relationships.term_taxonomy_id IN (38) AND wp_posts.ID NOT IN (
            SELECT object_id
            FROM wp_term_relationships
            WHERE term_taxonomy_id IN (341)
        )
) AND wp_posts.post_type = \'product\' AND ((wp_posts.post_status = 
\'publish\')) GROUP BY wp_posts.ID ORDER BY wp_posts.post_date DESC LIMIT 0, 16

2 example

如果我有这样的url页面

https://example。com/snapbacks/?pa\\U品牌=nike

我有这个sql查询

SELECT SQL_CALC_FOUND_ROWS  wp_posts.ID FROM wp_posts LEFT JOIN wp_term_relationships ON (wp_posts.ID = wp_term_relationships.object_id) LEFT JOIN wp_term_relationships AS tt1 ON (wp_posts.ID = tt1.object_id) WHERE 1=1  AND ( wp_term_relationships.term_taxonomy_id IN (46) AND tt1.term_taxonomy_id IN (38)  AND  wp_posts.ID NOT IN (
            SELECT object_id
            FROM wp_term_relationships
            WHERE term_taxonomy_id IN (341)
        )) AND wp_posts.post_type = \'product\' AND ((wp_posts.post_status = \'publish\')) GROUP BY wp_posts.ID ORDER BY wp_posts.post_date DESC LIMIT 0, 16
所以我有几个问题。

如何获取https://example页面上第一个示例中显示的sql查询。com/snapbacks/?pa\\U brand=nike where?添加了“pa\\U brand=nike”部分

1 个回复
SO网友:Rarst

在WP中,从URL到SQL的转换非常漫长和复杂。

简而言之:

URL被重写为GET请求,GET请求被转换为查询变量,查询变量用于实例main query,main query生成SQL,这个过程有很多细微差别,在过程中会触发钩子,以及其中的逻辑。这本质上就是WordPress,它的核心。

还要注意的是WP_Query 出于逻辑和性能原因,可能很容易生成多个SQL查询。

如果我正确地理解了您的问题,那么您就有了一些扩展定制查询,它有自己的GET参数。简单地说,在这种情况下,没有办法“告诉”WordPress给您一个“干净”的查询。您需要研究正在进行什么样的精确定制,以及为了您的目的应该如何处理它,而不破坏它所执行的功能。

结束

相关推荐

什么是phpBB?它是不是类似于我可以在WordPress中使用的插件?

我对phpBB做了一些研究。它说这是一个论坛插件,但没有提到这个插件可以在Wordpress中使用。然后我看到this forum 比较phpBB和Wordpress插件的地方(看起来两者仍然不同)。我在Wordpress开发StackExchange中看到了几个关于phpBB的问题,但没有一个回答我的问题。所以,如果我买this theme, 那么我可以在Wordpress中使用它吗?如果没有,那么哪个平台可以用来编辑主题?代码是PHP,还是可以使用HTML和CSS?对不起,问题太多了。