我如何让永久链接结构像这样工作?

时间:2016-06-12 作者:ninja08

领域com/租金/迈阿密戴德/

领域com/公司/迈阿密戴德/

然后,比如租金/迈阿密-戴德/我会在迈阿密的一些不同区域循环,显示每个区域的租金列表。例如:

领域com/租金/迈阿密戴德/

将通过在迈阿密的区域循环来呈现类似的内容:

北迈阿密海滩

租金表Hialeah

卡特勒岭租金表

租金表我需要为不同的对象“公司”模拟完全相同的序列。

领域com/公司/迈阿密戴德/

将通过在迈阿密的区域循环来呈现类似的内容:

北迈阿密海滩

Hialeah公司表

卡特勒岭公司表

公司表我怎么能设置这样的东西呢?我已经创建了一个公司的帖子类型,并对县和市进行了分类。

我已经能够看到taxomonie自己的页面,但它不限于某个帖子类型,这不是我所需要的。我需要url以类似于我在这里显示的内容。

提前感谢!

2 个回复
最合适的回答,由SO网友:jgraup 整理而成

您可以使用add_rewrite_rule().

我个人喜欢在一个类中展示这个示例,以便为它的复制/粘贴做好准备。您可以将其放入插件或函数中。php——之前加载此代码的某个地方query_vars, parse_requestinit.

目标是添加重写规则,确保可以向主查询添加自定义属性,然后用自定义模板替换要加载的默认模板。

if (!class_exists(\'RentsAndCompaniesRewrite\')):

    class RentsAndCompaniesRewrite
    {
        // WordPress hooks

        public function init()
        {
            add_filter(\'query_vars\', array($this, \'add_query_vars\'), 0);
            add_action(\'parse_request\', array($this, \'sniff_requests\'), 0);
            add_action(\'init\', array($this, \'add_endpoint\'), 0);
        }

        // Add public query vars

        public function add_query_vars($vars)
        {
            $vars[] = \'show_companies\';
            $vars[] = \'show_rents\';
            $vars[] = \'location\';

            return $vars;
        }

        // Add API Endpoint

        public function add_endpoint()
        {
            add_rewrite_rule(\'^rents/([^/]*)/?\', \'index.php?show_rents=1&location=$matches[1]\', \'top\');
            add_rewrite_rule(\'^companies/([^/]*)/?\', \'index.php?show_companies=1&location=$matches[1]\', \'top\');

            flush_rewrite_rules(false); //// <---------- REMOVE THIS WHEN DONE TESTING
        }

        // Sniff Requests

        public function sniff_requests($wp_query) {
            global $wp;

            if ( isset( $wp->query_vars[ \'show_rents\' ], $wp->query_vars[ \'location\' ] ) ) {

                $this->handle_request_show_rents();

            } else if ( isset( $wp->query_vars[ \'show_companies\' ], $wp->query_vars[ \'location\' ] ) ) {

                $this->handle_request_show_companies();
            }
        }

        // Handle Requests

        protected function handle_request_show_rents()
        {
            add_filter(\'template_include\', function ($original_template) {

                return get_stylesheet_directory() . \'/templates/rents_by_location.php\';
            });
        }

        protected function handle_request_show_companies()
        {
            add_filter(\'template_include\', function ($original_template) {

                return get_stylesheet_directory() . \'/templates/companies_by_location.php\';
            });
        }
    }

    $wptept = new RentsAndCompaniesRewrite();
    $wptept->init();

endif; // RentsAndCompaniesRewrite
在主题内的目录中,添加处理请求时将使用的模板。

/templates/companies_by_location.php

<?php

global $wp;
$location = $wp->query_vars[ \'location\' ];

echo \'Companies in the \' . $location . \' area:\';

/templates/rents_by_location.php

<?php

global $wp;
$location = $wp->query_vars[ \'location\' ];

echo \'Rents in the \' . $location . \' area:\';

SO网友:Prashant Gupta

好的,我有一些基本的想法。您可以安装名为重定向的插件。然后,您可以使用自己的数据创建like并重定向到其他页面。

但URL会随着用户重定向到其他特定页面而改变。

现在如果你想让他们在特定页面上登陆。。。您需要将文件夹放入主站点下的服务器目录中,并在其中包含索引的文件。php或索引。html。示例:Goto you Cpanel and Goto file maneger>>创建文件夹名称(如果需要),为“domain.com/companies/miami dade/”创建文件夹“companies”,然后为子文件夹“miami dude”。注意:每个文件夹都应该包含索引。html文件,否则将无法工作。注意:这个技巧不会复制你的主题,否则你需要创建一个完整的HTML页面并将其保存为索引。html

希望它可以帮助您:-)

相关推荐

WP JSON list all permalinks

Scenario我正在考虑编写一个自定义的wp json端点,以列出我的wordpress中每个帖子的所有永久链接。Question是否可以使用rest查询+筛选器来完成此操作?例如:。http://wpsite.com/wp-json/wp/v2/posts?filter[only-permalinks]当前的解决方案最后我编写了一个自定义端点,代码如下:添加到函数的底部。phpfunction get_all_slugs() { $posts = get_posts( array(&#