如何解决为未登录的用户显示注册链接,而不是Buddypress活动循环
如何显示未登录用户而不是Buddypress活动循环的登录链接?
在主题functions.php文件中有一种简便的方法吗?
我知道如何使用 action_activity_loop_start 在循环前添加通知,但是如何隐藏整个循环?
解决方法
选项1
您可以使用类似这样的内容:
add_filter( 'bp_get_template_part',static function( $templates,$slug,$name ) {
if ( $slug === 'activity/index' && ! is_user_logged_in() ) {
$templates = [];
}
return $templates;
},10,3 );
此代码段将完全隐藏默认的活动循环,其中包含所有过滤器,表单等,从而呈现空白页而不是所有BuddyPress活动。
这可能不是理想的方法。
选项2
在$templates
变量中,您还可以定义自己的自定义模板路径(例如activity/logged-out.php
,因此它看起来像这样:
$templates = [ 'activity/logged-out.php' ];
您将需要使用以下内容创建一个wp-content/themes/theme-name/buddypress/activity/logged-out.php
文件:
<?php do_action( 'bp_before_directory_activity' ); ?>
<div id="buddypress">
<?php do_action( 'bp_before_directory_activity_content' ); ?>
<div id="template-notices" role="alert" aria-atomic="true">
<?php do_action( 'template_notices' ); ?>
</div>
<?php do_action( 'bp_before_directory_activity_list' ); ?>
<div class="activity" aria-live="polite" aria-atomic="true" aria-relevant="all">
CUSTOM TEXT FOR LOGGED OUT USERS.
</div><!-- .activity -->
</div>
您可以检查activity/index.php
文件来确定您需要什么和不需要什么,但是我认为这是删除大部分内容和挂钩的好主意。
选项3
如果使用BuddyPress旧版模板包(签入BuddyPress设置),则可以将/wp-content/plugins/buddypress/bp-templates/bp-legacy/buddypress/activity/index.php
文件复制到主题:wp-content/themes/theme-name/buddypress/activity/index.php
中,并在需要时进行修改。检查235周围的行,其内容如下:<?php bp_get_template_part( 'activity/activity-loop' ); ?>
。
对于BuddyPress Nouveau模板包,所有内容基本相同,但是您需要处理wp-content/plugins/buddypress/bp-templates/bp-nouveau/buddypress/activity/index.php
文件。在显示整个div及其内容之前,您需要将其div#activity-stream
包装到is_user_logged_in()
中,如下所示:
<?php if ( is_user_logged_in() ) : ?>
<div id="activity-stream" class="activity" data-bp-list="activity">
<div id="bp-ajax-loader"><?php bp_nouveau_user_feedback( 'directory-activity-loading' ); ?></div>
</div><!-- .activity -->
<?php endif; ?>
这样,您基本上将使用自己的默认值覆盖默认的BuddyPress模板文件。 请记住页面的Ajax功能(过滤等)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。