使用下一代图库自定义固定链接

时间:2010-11-24 作者:trrrrrrm

我将wordpress permlink设置为/%category%/%postname% 现在我正在使用Nextgen Gallery,所以当我在页面中有一个Gallery时/cat/page?gallery=10 我想让它像cat/page/gallery id/ 我尝试了很多wp\\U重写。。。但运气不好。。。有什么帮助吗?

这就是我正在测试的。。这不是我的代码,是wordpress提供的。。。当我找到路的时候,我会把一切都安排好。。。所以别担心我不会的flushRules 在…上init ... 谢谢

add_filter(\'rewrite_rules_array\',\'wp_insertMyRewriteRules\');
add_filter(\'query_vars\',\'wp_insertMyRewriteQueryVars\');
add_filter(\'init\',\'flushRules\');

// Remember to flush_rules() when adding rules
function flushRules(){
 global $wp_rewrite;
    $wp_rewrite->flush_rules();
}

// Adding a new rule
function wp_insertMyRewriteRules($rules)
{
 $newrules = array();

    //i don\'t know what should i put here
 $newrules[\'\'] = \'\';
 return $newrules + $rules;
 //
}

// Adding the id var so that WP recognizes it
function wp_insertMyRewriteQueryVars($vars)
{
    array_push($vars, \'id\');
    return $vars;
}

3 个回复
SO网友:Steven

你看过rewrite API? 也许这可以解决你的问题
如果使用重写API,则可能应该启用NextGen重写函数。

SO网友:Jan Fabry

有了一个额外的端点,因为您想在每个帖子/页面重写规则的末尾添加一些内容,所以您可能只需添加一个重写端点即可。这些是以下形式的正则表达式/[endpoint_name](/[optional_extra_stuff])? 附加到已生成的页面、帖子、归档等规则中。。。

通过设置端点掩码,可以定义要在哪些结构上添加它们。这是一个位掩码,因此可以使用| 操作员,如下所示:EP_PERMALINK | EP_PAGES 将匹配每个页面和每个永久链接(完整的帖子和基于日期的存档)。可以找到端点的默认列表at the top of wp-includes/rewrite.php.

以下代码将添加/gallery(/(.*))? 对于页面、帖子和基于日期的归档文件的现有重写规则(由于某些原因,它们会生成两次,一次在EP_PERMALINK 一旦进入EP_DATE):

add_filter( \'init\', \'wpse4498_init\' );
function wpse4498_init()
{
    add_rewrite_endpoint( \'gallery\', EP_PERMALINK | EP_PAGES );
}
使用显式新重写规则,您还可以显式执行,这可能会让您对生成的规则有更多的控制。

重写规则本身非常简单:采用一般的post规则(.+?)/([^/]+) (category/pagename) 并添加您的库结构。NextGEN总是添加其查询变量,而不仅仅是在启用永久链接时,所以我们可以只使用gallery 风险值:

\'(.+?)/([^/]+)/gallery/([0-9]{1,})/?$\' =>
    \'index.php?category_name=$matches[1]&name=$matches[2]&gallery=$matches[3]\'
额外重写规则的位置很棘手。因为你的permalink结构是/%category%/%postname%/ 您有详细的重写规则,无法放置泛型(.+?)/([^/]+) 顶部:您的页面将停止工作。您不能将其放在底部,因为附件规则非常通用,并且在到达您的规则之前已经匹配了URL。我认为最好的添加位置是post_rewrite_rules 滤器这将提供以下内容:

add_filter( \'post_rewrite_rules\', \'wpse4498_post_rewrite_rules\' );
function wpse4498_post_rewrite_rules( $post_rewrite_rules )
{
    $post_rewrite_rules = array(
        \'(.+?)/([^/]+)/gallery/([0-9]{1,})/?$\' =>
            \'index.php?category_name=$matches[1]&name=$matches[2]&gallery=$matches[3]\',
    ) + $post_rewrite_rules;
    return $post_rewrite_rules;
}
这只包括帖子,如果您还想支持带有图库的页面,那么它将变得更加复杂,因为您必须为每个详细的页面组添加它们。

SO网友:Norcross

您是否在NextGen设置中激活了永久链接?在“库->选项->常规”下,选择“激活永久链接”,然后重置一次常规永久链接设置。它不是世界上最干净的URL(它获取的是页面ID而不是名称),但它确实做到了这一点。

相关推荐

Redirection problems

请帮助我克服重定向问题。我需要在子域上工作,而不是在主域上工作,但这里两个域是不同的。我所做的是-将所有(website.com)文件复制到另一个子域(demo.websiteA.com),并根据wp配置更改数据库名称。php文件。但每当我尝试打开演示时。网站a。com它重定向到网站。com公司请帮帮我提前感谢

使用下一代图库自定义固定链接 - 小码农CODE - 行之有效找到问题解决它

使用下一代图库自定义固定链接

时间:2010-11-24 作者:trrrrrrm

我将wordpress permlink设置为/%category%/%postname% 现在我正在使用Nextgen Gallery,所以当我在页面中有一个Gallery时/cat/page?gallery=10 我想让它像cat/page/gallery id/ 我尝试了很多wp\\U重写。。。但运气不好。。。有什么帮助吗?

这就是我正在测试的。。这不是我的代码,是wordpress提供的。。。当我找到路的时候,我会把一切都安排好。。。所以别担心我不会的flushRules 在…上init ... 谢谢

add_filter(\'rewrite_rules_array\',\'wp_insertMyRewriteRules\');
add_filter(\'query_vars\',\'wp_insertMyRewriteQueryVars\');
add_filter(\'init\',\'flushRules\');

// Remember to flush_rules() when adding rules
function flushRules(){
 global $wp_rewrite;
    $wp_rewrite->flush_rules();
}

// Adding a new rule
function wp_insertMyRewriteRules($rules)
{
 $newrules = array();

    //i don\'t know what should i put here
 $newrules[\'\'] = \'\';
 return $newrules + $rules;
 //
}

// Adding the id var so that WP recognizes it
function wp_insertMyRewriteQueryVars($vars)
{
    array_push($vars, \'id\');
    return $vars;
}

3 个回复
SO网友:Steven

你看过rewrite API? 也许这可以解决你的问题
如果使用重写API,则可能应该启用NextGen重写函数。

SO网友:Jan Fabry

有了一个额外的端点,因为您想在每个帖子/页面重写规则的末尾添加一些内容,所以您可能只需添加一个重写端点即可。这些是以下形式的正则表达式/[endpoint_name](/[optional_extra_stuff])? 附加到已生成的页面、帖子、归档等规则中。。。

通过设置端点掩码,可以定义要在哪些结构上添加它们。这是一个位掩码,因此可以使用| 操作员,如下所示:EP_PERMALINK | EP_PAGES 将匹配每个页面和每个永久链接(完整的帖子和基于日期的存档)。可以找到端点的默认列表at the top of wp-includes/rewrite.php.

以下代码将添加/gallery(/(.*))? 对于页面、帖子和基于日期的归档文件的现有重写规则(由于某些原因,它们会生成两次,一次在EP_PERMALINK 一旦进入EP_DATE):

add_filter( \'init\', \'wpse4498_init\' );
function wpse4498_init()
{
    add_rewrite_endpoint( \'gallery\', EP_PERMALINK | EP_PAGES );
}
使用显式新重写规则,您还可以显式执行,这可能会让您对生成的规则有更多的控制。

重写规则本身非常简单:采用一般的post规则(.+?)/([^/]+) (category/pagename) 并添加您的库结构。NextGEN总是添加其查询变量,而不仅仅是在启用永久链接时,所以我们可以只使用gallery 风险值:

\'(.+?)/([^/]+)/gallery/([0-9]{1,})/?$\' =>
    \'index.php?category_name=$matches[1]&name=$matches[2]&gallery=$matches[3]\'
额外重写规则的位置很棘手。因为你的permalink结构是/%category%/%postname%/ 您有详细的重写规则,无法放置泛型(.+?)/([^/]+) 顶部:您的页面将停止工作。您不能将其放在底部,因为附件规则非常通用,并且在到达您的规则之前已经匹配了URL。我认为最好的添加位置是post_rewrite_rules 滤器这将提供以下内容:

add_filter( \'post_rewrite_rules\', \'wpse4498_post_rewrite_rules\' );
function wpse4498_post_rewrite_rules( $post_rewrite_rules )
{
    $post_rewrite_rules = array(
        \'(.+?)/([^/]+)/gallery/([0-9]{1,})/?$\' =>
            \'index.php?category_name=$matches[1]&name=$matches[2]&gallery=$matches[3]\',
    ) + $post_rewrite_rules;
    return $post_rewrite_rules;
}
这只包括帖子,如果您还想支持带有图库的页面,那么它将变得更加复杂,因为您必须为每个详细的页面组添加它们。

SO网友:Norcross

您是否在NextGen设置中激活了永久链接?在“库->选项->常规”下,选择“激活永久链接”,然后重置一次常规永久链接设置。它不是世界上最干净的URL(它获取的是页面ID而不是名称),但它确实做到了这一点。

相关推荐

Redirect htaccess

我需要帮助重定向我的页面。例如,我有网站https://example.com. 我需要将内容从https://example.com 到https://example.com/blog. 这不是问题,我通过更改主页URL来做到这一点。这很有效。但现在我需要添加来自旧的重定向https://example.com 到https://xmpl.com.我想用。htaccess,但这不起作用。你们能帮帮我吗?以下是我对此的一些尝试,但两者都不起作用。RewriteEngine On RewriteRu