代码之家  ›  专栏  ›  技术社区  ›  Gavrisimo

如何分页wordpress页面+需要帮助调试+需要帮助POST/GET请求

  •  0
  • Gavrisimo  · 技术社区  · 15 年前

    这是一页,它是一个 供电站点:

    http://bit.ly/9oJXWV

    选择某个值,它将发布到同一页面,并根据您选择的值生成页面列表。

    这是我的模板:

    http://pastebin.com/HQvMq3Db

    http://pastebin.com/fWKqqzQv

    这个页面的工作方式,我想它和我刚刚结束把所有的代码在一起,但有一个问题。一旦我得到整理,我会使代码更好。。。:)

    因此,问题是,如果你在选择和提交后查看列出的页面,很多页面上都缺少一些值,即使这些值在那里(打开列表中缺少某些值的任何页面,你几乎可以看到相同的内容,但现在显示的是所有数据)。

    这就是我需要帮助调试的部分。我真的不知道怎么解决这个问题。

    还有一件事,我怎么能有这样的链接:

    …/旅馆/?grad=贝奥格勒

    当用户打开那个页面时,他不必点击来选择城镇,它已经列出了“Beograd”中的所有页面了?我想这是你的要求对吧?我可以用邮局做这样的事吗?你不知道该怎么办,就像我说的,我是新手。

    感谢阅读,期待回答和评论。

    干杯!

    3 回复  |  直到 15 年前
        1
  •  1
  •   js1568    15 年前

    您可以将函数设置为在WP中启用分页,而无需执行任何自定义逻辑。

    http://codex.wordpress.org/Template_Tags/query_posts#Pagination_Parameters

        2
  •  1
  •   Hugo Mota    15 年前

    对。对。不。

    GET请求从url检索变量。所以只要运行一个带有GET变量的链接,php就会成功地显示您的信息。但是,如果您使用的是POST,那么变量将从“后台”检索,并通过上一页传递。因此,您不能只运行一个链接,必须从上一页(通过窗体)调用该页,否则该页将无法访问变量。

        3
  •  1
  •   Gavrisimo    15 年前

    1) 我简单地通过实现 &paged='.get_query_var('paged')

    $hostels = new WP_Query('post_type=page&meta_key=Grad&meta_value='.$grad.'&posts_per_page=60&orderby=title&order=ASC&paged='.get_query_var('paged'));
    

    @js1568我给了他+1的答案,但他没有回答我的全部问题。

    现在我可以浏览这样的页面:

    /acommodation/hostels/?city=beograd - this is page 1
    /acommodation/hostels/page/2/?city=beograd - this is page 2
    /acommodation/hostels/page/3/?city=beograd - this is page 3
    etc...
    

    2) 某些页面缺少信息的问题可以通过将其放在内部循环的末尾以下来解决:

    wp_reset_query();
    

    function custom_get_meta_values($id){
    
    $first_array = get_post_custom_keys($id);
    
    foreach ($first_array as $key => $value) :
           $second_array[$value] =  get_post_meta($id, $value, FALSE);
            foreach($second_array as $second_key => $second_value) :
                $result[$second_key] = $second_value[0];
            endforeach;
     endforeach;
    
    return $result;
    }
    

    在我的内部循环中,我这样调用该函数:

    $result = custom_get_meta_values($post->ID);
    

    echo $result['Mail'];
    

    只需将meta字段的名称放在$result数组中并回显它。

    3) 我用GET request替换了POST,所以现在我可以有如下链接:

    /acommodation/hostels/?city=beograd
    

    按照遗嘱的指示,我将把这个答案标为接受。

    推荐文章