小编use*_*684的帖子

Wordpress - wp_rewrite规则

我正在尝试为WordPress编写一个插件,但是我遇到了一些关于wp_rewrite功能的问题.

我希望通过URL传递变量使一个页面显示为多个页面(例如:www.mysite.com/WordPress?variable = helloall)

但是我想保持永久链接结构完整,所以我希望URL显示如下:

www.mysite.com/WordPress/helloall

然后,我希望能够使用slug并使用搜索我的数据库.(就像我使用$ _GET一样,如果我使用的是我先提到的一般方法)


我在网上找到了一些教程,但仍然可以使这个工作.我相信我的问题是由于您如何正确编写规则而缺乏理解.

我使用过这个教程:

http://www.prodeveloper.org/create-your-own-rewrite-rules-in-wordpress.html

我试图在大多数情况下使用相同的代码.我能够制定规则,但他们似乎不想为我工作

谁能告诉我正确的格式才能做到这一点?

编辑

这是我目前的职能

function add_rewrite_rules( $wp_rewrite ) 
{
    $new_rules = array
    (
        '(.?.+?)/(.+?)/page/?([0-9]{1,})/?$' => 'index.php?pagename='.
        $wp_rewrite->preg_index(1).'&varname='.
        $wp_rewrite->preg_index(2).'&page='.
        $wp_rewrite->preg_index(3),

        '(.?.+?)/(.*?)/?$' => 'index.php?pagename='.
        $wp_rewrite->preg_index(1).'&varname='.
        $wp_rewrite->preg_index(2)
    );
    // Always add your rules to the top, to make sure your rules have priority
    $wp_rewrite->rules = $new_rules + $wp_rewrite->rules;
}
Run Code Online (Sandbox Code Playgroud)

add_action('generate_rewrite_rules','add_rewrite_rules');

我已经弄明白了,我打算将此作为答案发布,但似乎我现在无法回答我自己的问题,所以相反我正在编辑原帖:

首先,我上面发布的代码是正确的,但是它不起作用的原因是因为我没有刷新规则,我使用以下代码执行此操作:

function ebi_flush_rewrite_rules()
{
global $wp_rewrite;

$wp_rewrite->flush_rules();
}

add_action( 'init', 'flush_rewrite_rules');
Run Code Online (Sandbox Code Playgroud)

我的新问题是,我的代码工作得很好,重定向所有页面而不是我想要的页面,这意味着没有显示哪个子页面有点问题,但是我已经解决了一个小问题编辑:

function add_rewrite_rules( $wp_rewrite ) 
{
  $new_rules = array …
Run Code Online (Sandbox Code Playgroud)

php wordpress

9
推荐指数
1
解决办法
6955
查看次数

Linux Mint 18 PHP5.6 不工作

作为一个整体,我对 Linux 还是很陌生,我最近一直在尝试设置一个运行 PHP5.6 的小型家庭服务器,但是我一直受到问题的困扰。

最初我安装了 Linux 17.2(后来更新到 17.3)来完成这项工作,但是似乎与我的盒子有一些冲突,导致出现间歇性启动问题(它通常会停止死机并且显示器会进入省电模式,这并没有一直发生,但足以成为一个问题)...

所以我决定更新到 Linux 18 以查看问题是否仍然存在,我很高兴地说,它没有,根本没有启动问题,但是我遇到了一个新问题:(

由于 Linux Mint 8 默认在其存储库中具有 PHP7,它与我尝试运行的不兼容,所以我一直在尝试安装 PHP 5.6,我相信我已经完成了,至少它告诉我我当我在终端中检查版本时安装它。

php -v
Run Code Online (Sandbox Code Playgroud)

PHP 5.6.27-1+deb.sury.org~xenial+1 (cli) 版权所有 (c) 1997-2016 The PHP Group Zend Engine v2.6.0,版权所有 (c) 1998-2016 Zend Technologies with Zend OPcache v7.0.6 -dev,版权所有 (c) 1999-2016,由 Zend Technologies

我通过以下方式实现了这一点:

$ sudo apt-get install python-software-properties
$ sudo add-apt-repository ppa:ondrej/php
$ sudo apt-get update
$ sudo apt-get install -y php5.6 php5.6-mcrypt php5.6-gd
Run Code Online (Sandbox Code Playgroud)

http://tecadmin.net/install-laravel-framework-on-ubuntu/

但是,按照相同的演练,我无法按照描述进行安装,因为出现以下错误:

包 libapache2-mod-php5 不可用,但被另一个包引用。这可能意味着软件包丢失、已过时或只能从其他来源获得

E: 包“libapache2-mod-php5”没有安装候选

然而当我尝试安装 apache2 flat …

php linux apache lamp linux-mint

3
推荐指数
1
解决办法
4050
查看次数

标签 统计

php ×2

apache ×1

lamp ×1

linux ×1

linux-mint ×1

wordpress ×1