关于index.php WordPress主题文件的自己的代码,帮助重写规则

时间:2011-02-09 作者:webmasters

嘿,我很沮丧,被问了又问,似乎找不到答案。请帮帮我,我会把我的问题清理干净的。我会给能帮忙的人几百只熊:)

我安装了一个博客http://www.myblog.com - it\'s part of a network, I use wordpress multisite

  • I created a table called cars 有60行-it\'s not a wordpress table, 这是我自己的自定义表,但我已经在wordpress数据库中创建了它。

    关于我的博客主题,编辑索引。php,我显示表中的记录cars, 每页10行,我编写了一个自定义分页脚本,与我的wordpress分页没有任何关系。

    现在我有以下链接:
    www.myblog。com/index。php?当前页面=1 www.myblog。com/index。php?当前页=2,依此类推,直到
    www.myblog。com/index。php?当前页=6

    如何将它们重写为非常友好的链接?

  • Ideea one: 由于它们实际上与wordpress博客无关,我应该编辑htaccess吗?我相信wordpress。htacces规则覆盖我在其中放置的任何自定义规则。。。如果您知道解决方案,请分享。。。

    Ideea two: 尝试使用wordpress规则和已编辑的函数。php如此,运气不佳:

    add_action( \'init\', \'wpa5413_init\' ); 
        function wpa5413_init() {     
            add_rewrite_rule(           
                \'^/\\?currentpage/(\\d*)$\',         
                \'index.php?currentpage=$matches[1]\',  
                \'top\' ); 
        }
    
        add_filter(\'query_vars\', \'wpa3537_query_vars\'); 
        function wpa3537_query_vars($query_vars) {     
            $query_vars[] = \'currentpage\';     
            return $query_vars;
        } 
    

    Please help me, honestly, I can even pay, I am soo frustraed... doing this work after my dayjob, it\'s been days of not sleeping, just need to make this happen, pleaseeeeeeeeeeeeeeeee

    PS不要否决我的问题,我看到其他人也在为类似的问题争吵

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

    重写规则不能以已删除的第一个斜杠开始。因此,下面的代码将添加一个重写规则,该规则将设置我们以后可以使用的查询变量:

    add_action( \'init\', \'wpse9016_init\' );
    function wpse9016_init()
    {
        add_rewrite_rule( \'currentpage/(\\d+)/?\', \'index.php?wpse9016_currentpage=$matches[1]\', \'top\' );
    }
    
    此查询变量将被忽略,除非我们将其添加到公共查询变量列表中:

    add_action( \'query_vars\', \'wpse9016_query_vars\' );
    function wpse9016_query_vars( $query_vars )
    {
        $query_vars[] = \'wpse9016_currentpage\';
        return $query_vars;
    }
    
    完成此操作后,您可以检查它,并在设置时执行任何您想要的操作。常用方法是加载特定模板文件:

    add_filter( \'template_include\', \'wpse9016_template_include\' );
    function wpse9016_template_include( $template )
    {
        if ( get_query_var( \'wpse9016_currentpage\' ) ) {
            $template = locate_template( array( \'wpse9016_template.php\' ) );
        }
        return $template;
    }
    
    现在,如果你去http://www.example.com/currentpage/2/, 文件wpse9016_template.php 将在您的主题目录中加载,您可以在其中阅读get_query_var( \'wpse9016_currentpage\' ) 获取当前页码。

    SO网友:Michelle

    你说的“谷歌友好链接”到底是什么意思?

    将自定义代码移动到custom page template, 然后添加使用该模板的新页面,然后在“设置”>“阅读”中将站点主页设置为该静态页面。

    尽管如此,还是不确定分页要发生什么。抱歉,如果我在尝试帮助时偏离了底线!:)

    结束

    相关推荐