将页面与自定义URL和函数捆绑在一起

时间:2016-01-16 作者:pbe

我有一个插件,允许用户为帖子添加书签,我想为所有这些书签帖子创建一个页面/存档/索引。到目前为止,我所做的是:创建了一个菜单链接,如果用户为帖子添加了书签,就会显示该链接,添加了一个按钮为帖子添加书签,并编写了一个循环,根据帖子id显示这些书签帖子。

我有一个想法如何使这成为可能。我想包括一个页面mywpblog.com/bookmarked/ (捆绑到主题中)-这将基于存档。php代码,它将充当一个归档页面和一个函数,该函数将确定这是否是.../bookmarked/ 页面样式is_bookmarked_page();.

如何包含主题页面(例如。。。/bookmarked/) 还有一个区分页面的函数?

有人能帮我吗?谢谢

1 个回复
最合适的回答,由SO网友:jgraup 整理而成

创建新文件并包括page template 构建循环并显示书签。

<?php
/**
 * Template Name: Bookmarked Page
 *
 * @package WordPress
 * @subpackage Twenty_Fourteen
 * @since Twenty Fourteen 1.0
 */
然后确保存在一个名为bookmarked (因此url已就位)并将其模板设置为您创建的自定义页面模板。

您还可以编写模板以针对specific page.

第{slug}页。php第{ID}页。菲律宾语is_bookmarked_page() 实际上并不需要,因为您已经知道正在使用模板。然而,有page template functions 这可能会有所帮助。

  • get_page_template ()
  • wp_get_theme()->get_page_templates()
  • is_page_template()
  • get_page_template_slug()after_switch_theme 通过使用创建页面wp_insert_post 并将模板设置为update_post_meta.

    如果页面不存在,请创建该页面:

    $title = __( \'Bookmarks\' );
    if ( NULL == get_page_by_title( $title ) ) {
        $post_id = wp_insert_post(
            array(
                \'post_name\'      => \'bookmarked\',
                \'post_title\'     => $title,
                \'post_content\'   => \'\',
                \'post_type\'      => \'page\',
                \'comment_status\' => \'closed\',
                \'ping_status\'    => \'closed\',
                \'post_status\'    => \'publish\',
            )
        );
    }
    
    设置页面模板:

    $template_full_path = trailingslashit( get_stylesheet_directory() ) . $template_rel_path;
    
    if ( file_exists( $template_full_path ) ) {
    
        // set the post meta data -- use relative path
        update_post_meta( $post_id, \'_wp_page_template\', $template_rel_path );
    }