自动将页面链接添加到导航菜单

时间:2017-10-06 作者:Steve

我在函数文件中编写了这段代码,以便在插件激活时自动将页面链接添加到导航菜单。它在我的测试服务器上运行得很好,但页面不会在多站点实时安装的标题下加载任何内容。

add_filter(\'wp_nav_menu_items\',\'add_about_page_to_menu\', 10, 2);
function add_about_page_to_menu( $items, $args ) {

$url = home_url( \'about\', \'relative\' );
if( $args->theme_location == \'primary\' )
    if ( is_plugin_active( \'about-page-extension/about-page-extension.php\' ) 
) {
    return $items."<li><a href=\'$url\'>About</a></li>";
}
return $items;
}
罪魁祸首似乎是if ( is_plugin_active( \'about-page-extension/about-page-extension.php\' ) 因为当我更改代码以排除该部分时,相同的问题并不明显,尽管它不起作用。

有人知道我怎么解决这个问题吗?

1 个回复
SO网友:Steve

原来is\\u plugin\\u active是在wp admin/includes/plugin中定义的。php,所以它只能在管理员中使用,除非我调用它。

我需要添加include_once( ABSPATH . \'wp-admin/includes/plugin.php\' ); 所以我的最终代码如下所示,我也整理了一下。

add_filter(\'wp_nav_menu_items\',\'add_about_page_to_menu\', 10, 2);
function add_about_page_to_menu( $items, $args ) {

include_once( ABSPATH . \'wp-admin/includes/plugin.php\' );
$url = home_url( \'about\', \'relative\' );
if( $args->theme_location == \'primary\' && is_plugin_active( \'about-page-extension/about-page-extension.php\' )) {
    return $items."<li><a href=\'$url\'>About</a></li>";
}
return $items;
}

结束