WP_QUERY中来自URL的自定义数据的适当流是什么?

时间:2012-05-29 作者:Rarst

我有多个阶段的过程,将复杂的面处理集成到WP查询中。问题是,我对如何工作变得越模糊,我可以使用一个指导方针,而不是独创性(并给自己挖个洞)。

一般阶段(伪代码,但接近真实):

从URL中检索值(如person=1 )$relationship_query[] = array(\'relationship\' => \'person_to_cat\', \'object\' => 1 ); )

  • 检索最终的自定义查询指令并生成适当的SQL指令a lot 这种情况(关系、分类法、日期)正在发生,而且它变得脆弱(代码的一个角落没有把价值放在代码的另一个角落期望它找到的地方,所有东西都分离了)。

    这么大的问题是-什么是合适的协议pass, receive, store and process custom data to WP via URL?

    较小零件:

    如何确保我不会与WP内部冲突query 和query_vars 属性?它们在代码中的使用似乎几乎相同,但它们往往具有不同的值和方法query_vars 一个

  • 3 个回复
    最合适的回答,由SO网友:Fabien Quatravaux 整理而成

    我想你要找的WP函数是add_rewrite_tag. 它旨在向URL添加自定义GET参数,并自动将其包含在query_vars.

    例如,可以将以下内容添加到init挂钩:

    add_rewrite_tag(\'%person%\',\'([^&]+)\');
    
    对于url,如http://example.com?person=joe, 全球$wp_query 将会有

    $wp_query->query_vars[\'person\'] = \'joe\'
    
    您还可以add a rewrite rule 例如,使URL更漂亮http://example.com/person/joe

    add_rewrite_rule(\'^person/([^/]*)/?\',\'index.php?person=$matches[1]\',\'top\');
    
    请参见Rewrite API 有关更多信息和示例。

    SO网友:AriePutranto

    查看wp includes/class wp。php来检查任何保留的查询变量,我不确定中间数据是什么意思。你能再解释一下吗示例:通过加载带有/?pagename=关于,WP将处理查询字符串,并找到正在使用的query\\u var是page\\u id。

    另一个例子:/?cat=1,/?category\\u name=未分类和/类别/未分类具有相同的查询\\u var“cat”

    SO网友:Joshua

    我想应该是通过$_GET 和/或$_POST, 然后进行相应的操作。

    或者,将大量数据存储在db中,然后将id解析为url,如下所示

    $data_id = $_GET[\'id\'];
    
    $data = $wpbd->get_results("SELECT * FROM wp_epic_table WHERE id=".$id);
    
    查询显然不会那么简单,它可能涉及许多连接和连接表。这就是我在我的一个页面中所做的,解析一个唯一的id,然后通过MySQL构建数据。

    结束

    相关推荐

    使用新的WP-Query()从循环中过滤后期格式;

    嗨,我目前正在为我的博客构建一个主题。下面的代码指向最新的帖子(特色帖子)。因为这将有一个不同的风格比所有其他职位。然而我想过滤掉帖子格式:链接使用我在循环中定义的WP查询,因为它给我带来了更多的灵活性。我该怎么做呢? <?php $featured = new WP_Query(); $featured->query(\'showposts=1\'); ?> <?php while ($featured->have_post