页眉标题后的动态菜单链接

时间:2014-01-03 作者:shasi kanth

我正在使用Wordpress的抛物线主题,我想为登录用户显示几个动态菜单链接,就在标题的右侧。如下图所示,菜单1和菜单2链接应位于标题右侧。

enter image description here

最好的方法是什么?我不喜欢插件,而是喜欢使用主题挂钩,因为当主题改变时,我可以编写一个挂钩来实现相同的功能。请建议我应该在哪里修改代码,或者我必须编写哪些新函数。

EDIT:

我想保留主菜单的原样。我只想在标题后自定义菜单链接。

2 个回复
最合适的回答,由SO网友:Brad Dalton 整理而成

如果您的主题包含一个标题钩子,那么您可以简单地在该区域中钩子一个新的小部件,并包含登录用户的条件标记,该标记只显示带有所需链接的自定义菜单小部件。

<?php
if ( is_user_logged_in() ) {
 wp_nav_menu( array( \'theme_location\' => \'logged-in-menu\' ) );
} else {
 wp_nav_menu( array( \'theme_location\' => \'logged-out-menu\' ) );
}
?>
您可以直接在标题中使用上面的代码。php文件或删除php标记,并将其包含在具有特定主题挂钩(如果有)的自定义函数中,然后在子主题函数文件中使用它。

另一个选项是创建一个新的小部件区域,并使用小部件可见性或另一个条件小部件,它允许您将条件直接添加到小部件中。

如果您可以提供特定于主题的头挂钩,那么我可以提供创建新小部件区域的代码。

来源http://codex.wordpress.org/Function_Reference/wp_nav_menu

function wpsites_register_header_widget() {

register_sidebar( array(
\'name\' => \'Header Widget\',
\'id\' => \'header-widget\',
\'before_widget\' => \'<div>\',
\'after_widget\' => \'</div>\',
) );
}

add_action( \'widgets_init\', \'wpsites_register_header_widget\' );

add_filter( \'your_themes_header_hook\', \'wpsites_header_widget\' );

function wpsites_header_widget() {


if ( is_user_logged_in() && is_active_sidebar( \'header-widget\' ) ) { 
dynamic_sidebar(\'header-widget\', array(
\'before\' => \'<div class="header-widget">\',
\'after\' => \'</div>\',
) );


    }

}
拖入一个自定义菜单小部件,即可完成设置。

SO网友:Ravi Patel

在admin中生成菜单,并在\\u登录后替换菜单名:

<?php if (is_user_logged_in() ) {  ?>
          <?php wp_nav_menu( array(\'menu\'=>\'after_login\',\'menu_class\' => \'mainmenu\' ) ); ?>
<?php }?>

if( current_user_can( \'administrator\' ) ){} // only if administrator
if( current_user_can( \'editor\' ) ){} // only if editor
if( current_user_can( \'author\' ) ){} // only if author
if( current_user_can( \'contributor\' ) ){} // only if contributor
if( current_user_can( \'subscriber\' ) ){} // only if subscriber

Or:

if( current_user_can( \'level_10\' ) ){}
if( current_user_can( \'level_9\' ) ){}
if( current_user_can( \'level_8\' ) ){}
if( current_user_can( \'level_7\' ) ){}
if( current_user_can( \'level_6\' ) ){}
if( current_user_can( \'level_5\' ) ){}
if( current_user_can( \'level_4\' ) ){}
if( current_user_can( \'level_3\' ) ){}
if( current_user_can( \'level_2\' ) ){}
if( current_user_can( \'level_1\' ) ){}
if( current_user_can( \'level_0\' ) ){}

结束

相关推荐

wp_mail and BCC headers

我正在使用WP 3.3.1我正在尝试将密件抄送添加到我正在发送的电子邮件的标题中,但没有添加密件抄送。public $from = \"[email protected]\"; public $replyTo = \"[email protected]\"; public $bcc = \"[email protected]\"; $headers[\'From\'] = \"From: \".$this->from; $h