Wordpress将URL映射到自定义文件

时间:2014-03-20 23:03:29

标签: php wordpress wordpress-theming

我在wordpress安装的模板目录中有一个search.php和stuff.php文件。当我http://example.com/search.php时,我希望它解析为我的自定义search.php文件。我目前正在获得404。

该文件位于siteroot/wp-contents/themes/theme-name/

我需要另一个文件的相同行为。

谢谢!

1 个答案:

答案 0 :(得分:0)

除非你导航到www.yourblog.com/wp-content/themes/your-theme/stuff.php,否则你的主题目录中的PHP文件将不会被自动获取,这实际上完全绕过了WordPress(不好) !)。默认情况下,WordPress会查找处理您网站内容的特定文件,这里有一个方便的图片,向您展示它是如何分解的:http://codex.wordpress.org/images/1/18/Template_Hierarchy.png

除此之外,如果您想要自己的搜索页面,您需要制作模板文件,然后让WordPress知道它存在以及何时使用它。使用上面链接的图片,你可以看出,如果你的主题目录中有一个名为search.php(小写)的文件,WordPress应该把它拿起并自动用作搜索页面。除此之外,您还可以根据需要搜索的内容获得许多不同的搜索结果页面。查看过滤器template_include - 更多信息:http://codex.wordpress.org/Plugin_API/Filter_Reference/template_include

以上是上一页的快速示例,其中显示了如何为给定的用例定义模板PHP文件:

add_filter( 'template_include', 'portfolio_page_template', 99 );

function portfolio_page_template( $template ) {

if ( is_page( 'portfolio' )  ) {
    $new_template = locate_template( array( 'portfolio-page-template.php' ) );
    if ( '' != $new_template ) {
        return $new_template ;
    }
}

return $template;
}

注意它是怎么说" is_page"顶部?这是一个条件标记,WordPress提供了许多帮助确定访问者请求的页面类型。有关模板标记列表(包括is_search),请查看:http://codex.wordpress.org/Conditional_Tags

希望有帮助,如果您需要更多帮助,请回复。

编辑 - 抱歉,我没有看到您的标题,如果您正在尝试将网址映射到您需要创建重写规则的自定义文件。这是一个很棒的演练:http://matty.co.za/2009/11/custom-url-rewrites-in-wordpress/