添加没有页面的“自定义页面”

时间:2014-08-11 08:06:50

标签: php wordpress templates plugins

标题可能不完全清楚,但我不知道如何以另一种方式提出这个问题。

我想在Wordpress中构建一个系统,用户可以将一些项目放在一起,就像http://mywordpress.com/projectbuilder/之类的网址一样。

通常我会在管理菜单中创建一个页面并将其设置为某个模板,在内容中我会添加一些文本:“不要删除此页面,此内容不会显示”。

但我认为必须有一种更好的方法来将自定义页面添加到某个URL而不将其作为具有“无用内容”的页面添加到后端,因为在这种情况下内容不会从后端更改。

我希望这是有道理的。我怎么能这样做?

我认为我可以通过自定义插件实现这一点,但我似乎无法找到任何代码如何去做。我找到了一种在右侧设置菜单中添加管理页面的方法。但是我想在前端的网站上添加一个页面。

3 个答案:

答案 0 :(得分:0)

抱歉,我没有正确回答你的问题。但有些人说创建自定义帖子或分类法:

请查看以下链接

Custom Post and Taxonomies

答案 1 :(得分:0)

基本上你可以通过创建重写规则然后指向一个文件来做到这一点。

add_action('init', 'add_rewrite_rule');
   function add_rewrite_rule(){
   // add_rewrite_rule(REGEX url, location, priority (i.e. top is before other rewrite rules)
   //basically tell wordress to add a query var if sidebar is added to url. change sidebar to what you want your link to be.
   // i set up a custom post type to make this work called custompostype..it does nothing but just to give post_type a value. 
   add_rewrite_rule('^sidebar?','index.php?is_sidebar_page=1&post_type=customposttype','top');
}

// register a query var
add_action('query_vars','market_set_query_var');
function market_set_query_var($vars) {
   array_push($vars, 'is_sidebar_page');
   return $vars;
}

// associate a template with your quer_var 
add_filter('template_include', 'market_include_template', 1000, 1);
function market_include_template($template){
    if(get_query_var('is_sidebar_page')){
    $new_template = (theme or plugin path).'/pages/yourpage.php'; // change this path to your file 
if(file_exists($new_template))
    $template = $new_template;
} 
return $template;
}

添加任何重写规则后,更改将不会发生,直到您进入设置 - >固定链接并点击“保存”按钮。

答案 2 :(得分:0)

在你的functions.php文件中添加它:

function themeslug_projects() {
    $args = array(
      'public' => true,
      'label'  => 'Projects', 

      'rewrite' => array( 'slug' => 'projects' ),
    );
    register_post_type( 'projects', $args );
}

add_action( 'init', 'themeslug_projects' );

执行此操作后,请再次保存永久链接设置,这一定可以正常工作..