【问题标题】:Wordpress create custom pages with permalinks from custom table dataWordpress 使用自定义表格数据中的永久链接创建自定义页面
【发布时间】:2018-03-24 14:55:14
【问题描述】:

我有 1 个自定义表(不是 wp 核心表),其中导入了特定产品。我已经设置了列出这些产品的自定义 wp 页面,创建了自定义过滤器等。到目前为止,在这一步中一切正常 - 列出了产品并且过滤工作,分页工作......

但是我现在想进一步扩展 - 在产品列表页面中单击产品名称时打开每个产品页面(如/product-listing-page/product-name-1)......如何实现“out wp_posts”表?

为什么我不使用 wp_posts 表:网站有静态页面和动态帖子,因为新闻和产品表每天晚上被截断并重新导入一次!所以,当产品列表是动态的并且在每次导入之前被完全截断时,不能真正使用 wp_posts 页面......

有什么想法吗?也许有人已经做过这样的事情了?;-)

【问题讨论】:

    标签: php mysql wordpress permalinks


    【解决方案1】:

    我不知道您是否开发了一个插件来处理您创建的所有自定义表和代码,但如果您没有,我强烈建议您这样做。

    因为通过将您的代码作为插件,您有机会使用 wordpress 的所有组件,例如重写规则系统,我认为这可以帮助您实现目标。

    我前段时间为一个我负责的网站创建了一个插件,我需要一个自定义页面来显示在网站(worpdress)url 系统中,如果我正确理解你的问题,这就是你想要做的。 不幸的是,该插件已经发展,我没有保留该代码的备份,但如果我没记错我当时是如何做到的,这是我遵循的粗略方法:

    我创建了一个插件来处理:

    • 自定义数据库表
    • 自定义 php 对象
    • ...

    AND(这是有趣的部分)将重写规则添加到 wordpress 重写规则系统如下:

    1. 设置重写标签(初始化操作)(如果需要)
    2. 添加重写规则(初始化操作)
    3. 拦截 url 并解析它以获得我在自定义中需要的参数 页面(parse_request 操作)

    以下功能可以帮助您:

    而且你需要加入:

    希望它可以帮助您开始。

    【讨论】:

      【解决方案2】:

      解决方案非常简单快捷!对于我的需要,只需注册全局查询变量就足够了:

          function register_new_query_var($vars) {
              $vars[] = 'product_id';
              return $vars;
      
          add_filter('query_vars', 'register_new_query_var');
      

      然后我将页面产品列表页面的主题模板更改为适用于产品列表和使用的单个产品 如果(!get_query_var('product_id'))。所以,如果查询为空 - 做列表的东西,如果不是空的 - 做个别产品的东西!

      对我来说这已经足够了,我什至不需要 seo 友好的网址(因为产品列表每天都在变化,所以 - 每天都会有新产品、链接,并且会有很多 404 错误)...

      我可以使用http://example.com/product-listing-page?product_id=1 并且页面显示来自自定义表格的日期! ;-)

      【讨论】:

        猜你喜欢
        • 2012-05-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-06-08
        • 1970-01-01
        • 2016-04-21
        • 2013-09-10
        • 2018-12-11
        相关资源
        最近更新 更多