如何制作带有菜单项等的WordPress插件

时间:2012-10-07 作者:user1000665

我一直在阅读关于如何创建Wordpress插件的文档、观看视频等。我已经学会了如何过滤帖子、在帖子中添加txt、使用条件来查看页面是否是单个帖子,以及如何在整个网站上不显示文本等。

我不理解的部分是如何创建一个插件,它有自己的菜单项,可以让用户访问我创建的插件。

比方说,我的插件应该是一个空白页面(带有Wordpress页眉、页脚等),只显示“Hello World!”我如何创建这个非常简单的插件,在它自己的页面上(整个网站都看不到),使用它自己的菜单按钮将用户带到这个插件?

是否创建模板和链接到模板的菜单项?我很困惑。。。我在管理部分找到了如何“创建页面”,但这似乎只创建了一个与空白页面相对应的菜单项,我可以在其中添加html。

我甚至找不到任何这样做的插件示例,但我认为创建一个具有菜单项的插件相对容易,这样访问者就知道如何访问该插件。

如果我想创建一个简单的插件,以便访问我的Wordpress的访问者可以单击一个名为“自行车比赛”的菜单项,并被带到我的插件页面,在那里他们可以查看我的插件的输出,在这种情况下,自行车比赛的列表,我将如何实现这一点?我是创建一个简单的插件,还是也创建一个模板?

请帮助我找到实现这一点的任何可能的插件示例。

谢谢

2 个回复
SO网友:Abdussamad

如果你想要一个前端页面,你必须创建一个以你插件的短代码为内容的页面。然后显示插件的输出来代替该短代码:

/*
Plugin Name: WPSE67438 Page plugin
*/
class wpse67438_plugin {
    const PAGE_TITLE = \'WPSE67438\'; //set the page title here.
    const SHORTCODE = \'WPSE67438\'; //set custom shortcode here.

   function __construct() {
        register_activation_hook( __FILE__, array( $this, \'install\' ) );
        add_shortcode( self::SHORTCODE, array( $this, \'display\' ) );
    }

public function install() {
    if( ! get_option( \'wpse67438_install\' ) ) {
        wp_insert_post( array( 
                    \'post_type\' => \'page\',
                    \'post_title\' => self::PAGE_TITLE,
                    \'post_content\' => \'[\' . self::SHORTCODE . \']\',
                    \'post_status\' => \'publish\',
                    \'post_author\' => 1
                    )
                );
        update_option( \'wpse67438_install\', 1 );
    }
}

public function display( $content ) {
    $my_plugin_output = "Hello World!"; //replace with plugin\'s output
    return $content . $my_plugin_output;
  }
 }

 new wpse67438_plugin();

SO网友:Milo

您至少需要一些插件选项,以允许用户决定如何/在何处访问您的插件页面。某些用户可能正在使用wp_list_pages 要输出菜单,其他人可以使用wp_nav_menu 实例来启用导航,在这种情况下,他们可以注册多个菜单,然后问题是他们希望在菜单中的什么位置注册。this answer 包含自动将菜单项添加到导航菜单的代码,但最好只提供用户添加插件菜单项的说明。

至于“页面”本身,我在各种插件中看到了几种不同的策略:

有一个快捷码,用户可以将其插入页面以显示插件的输出,如Abdussamad的答案create a page 插件激活时,内容为短代码。然后,用户可以选择将短代码移动到另一个页面、重命名页面、添加其他内容等。用户可以通过管理选项选择页面,以及filter the_content 在该页面上插入插件的输出this answer. 但是,这与主题的结合不好,因此可能不符合您的标准

结束

相关推荐

REGISTER_NAV_MENUS和wp_NAV_MENU问题,不显示独立菜单

我的问题是wordpress没有将两个菜单显示为单独的菜单,它只是将菜单上的内容输出到两个位置。URL:http://www.msc-media.co.uk检查页眉和页脚的链接-我知道页脚很难看,以后需要整理css。我在函数中创建了两个菜单。php使用此代码。<?php register_nav_menus( array( \'topmenu\' => \'Top Menu\', \'footermenu\' => \'Fo