Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Wordpress为自定义内容匹配url,无帖子或页面_Php_Wordpress - Fatal编程技术网

Php Wordpress为自定义内容匹配url,无帖子或页面

Php Wordpress为自定义内容匹配url,无帖子或页面,php,wordpress,Php,Wordpress,我是wordpress的新手 我想使用两个表,在不创建页面或帖子的情况下显示一些内容 匹配的url如下所示: /[category]/[image]-/nature/green tree 我的方法是从theme中检查index.php中的url,并拆分url,然后为画廊创建一个迷你路由系统。但我认为这不是最聪明的想法。 我不想使用gallery插件,因为我已经在使用一个了,这是我需要做的一个改变。 执行此操作的最佳方法是什么?我想您需要自定义重写规则。下面是你如何自己做的 如果您使用的是主题,请

我是wordpress的新手

我想使用两个表,在不创建页面或帖子的情况下显示一些内容

匹配的url如下所示:

/[category]/[image]
-
/nature/green tree

我的方法是从theme中检查index.php中的url,并拆分url,然后为画廊创建一个迷你路由系统。但我认为这不是最聪明的想法。 我不想使用gallery插件,因为我已经在使用一个了,这是我需要做的一个改变。
执行此操作的最佳方法是什么?

我想您需要自定义重写规则。下面是你如何自己做的

如果您使用的是主题,请打开
functions.php
文件并输入以下代码,否则如果您使用的是插件,请将此代码放在插件中的某个位置,但请确保它立即加载

function registerCustomUrl($rewrite)
{
    $rewrites       =   $rewrite->rules;
    $newRewrites    =   array();

    $newRewrites['([^/]+)/([^/]+)/?$']  =   'index.php?gallery_category=$matches[1]&gallery_image=$matches[2]';

    foreach($rewrites as $rk => $rv)
    {
        $newRewrites[$rk]   =   $rv;
    }

    $rewrite->rules =   $newRewrites;
}
add_action('generate_rewrite_rules',    'registerCustomUrl');

function registerCustomQueryVars( $vars ) {
    $vars[] = 'gallery_category';
    $vars[] = 'gallery_image';
    return $vars;
}
add_filter('query_vars',    'registerCustomQueryVars');

function myCustomTemplateRedirect()
{
    global $wp_query;

    if(
        isset($wp_query->query_vars['gallery_category']) &&
        !empty($wp_query->query_vars['gallery_category']) &&
        isset($wp_query->query_vars['gallery_image']) &&
        !empty($wp_query->query_vars['gallery_image'])
    )
    {
    // Within your custom template file you are able to
        // use any theme function like the get_header(), get_footer(), etc
        require_once('path/to/your/custom/template/file.php');
        exit(0);
    }
}
add_action("template_redirect", 'myCustomTemplateRedirect');

我个人会使用一个图库插件,这样WordPress就可以管理页面和URL,以及图像元数据。