【问题标题】:Hide icon if author meta data doesn't exist如果作者元数据不存在,则隐藏图标
【发布时间】:2021-12-08 13:24:47
【问题描述】:

我已经使用 Elementor 创建了作者页面,并且正在显示链接到作者社交媒体页面的图标。如果没有针对作者存储的社交媒体链接,我想隐藏相关图标。

也就是说,如果作者元数据facebook_handle不存在,我想隐藏facebook_icon

我使用了下面的代码,但无论元数据是否存在,它似乎都隐藏了图标。任何帮助将不胜感激。

// Hide Facebook icon if no facebook_handle

    function facebook_icon_display(){
    
    $facebook = get_the_author_meta('facebook_handle', true);

    if(empty($facebook)) : ?>
        <style type="text/css">
                    #facebook_icon   {
                        display: none;
                    }
                </style>;
        <?php endif; 
    }
    add_action( 'wp_head', 'facebook_icon_display', 10, 1 );

【问题讨论】:

  • 你回了$facebook,看看你得到了什么?
  • 嗨,Bhautik。感谢您的回复。我已经尝试使用$facebookif(empty($facebook)) 回显,但似乎都没有获取实际的作者元数据。这令人困惑,因为我在我网站的其他部分使用 get_the_author_meta('facebook_handle') 创建了一个简码。
  • 这个函数里定义了作者吗?
  • 嗨霍华德。啊,这可能是问题 - 我需要根据我正在查看的帖子定义作者吗?关于如何去做的任何建议?
  • 在函数的开头使用global $post;,看看此时是否已经填满。如果没有,您可能需要转而使用get_queried_object。然后从该帖子中获取post_author,并将其作为第二个参数传递给get_the_author_meta

标签: php css wordpress elementor


【解决方案1】:

感谢大家的帮助和指导。 工作代码是: `

function facebook_icon_display(){
    
    global $post;
    $author_id=$post->post_author;

    $facebook = get_the_author_meta('facebook_handle', $author_id);
    
    if(empty($facebook)) : ?>
        <style type="text/css">
                    #facebook_icon   {
                        display: none;
                    }
                </style>;
        <?php endif; 
    }
    add_action( 'wp_head', 'facebook_icon_display', 10, 1 );`

【讨论】:

    猜你喜欢
    • 2016-04-16
    • 2023-03-23
    • 2016-02-09
    • 2011-09-11
    • 2018-04-11
    • 2021-07-15
    • 2020-08-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多