在特定 post 类型的 wordpress 上向登录和未登录用户显示不同的消息

Show different message to logged in and non logged in users on particular post type wordpress

我安装了问答插件,所以 post 类型是示例。com/question/ 我想在 post 内容下方显示消息 它应该对 未登录 用户说“登录或注册” 欢迎登录用户

您正在寻找 is_user_logged_in();

Determines whether the current visitor is a logged in user.

<?php

if ( 'question' === get_post_type() ) {

  if ( ! is_user_logged_in() ) {

    echo 'An account is required.';
  
  } else {
  
    // ...
  
  };

};

尝试将此代码添加到您的主题中(如果适用):

if (is_user_logged_in()) {
    $current_user = wp_get_current_user();
    echo 'Welcome ' . esc_html($current_user->display_name);
} else {
    // Save current page url for redirect after login (optional):
    global $wp;
    $redirect = home_url($wp->request);

    echo '<a href="' . esc_url(wp_login_url($redirect)) . '">Login or Register</a>';
}

此外:WordPress 有一个本机函数 - wp_loginout()https://developer.wordpress.org/reference/functions/wp_loginout/ 它不会立即显示欢迎消息,但会为登录用户提供注销选项。