Custom Fields for Author Box

时间:2017-04-18 作者:MattP

对向作者表单中添加字段的最佳做法有疑问。该网站将代表其他作者发布博客,但希望在底部有一个作者框,其中包括“真实”作者的图片、姓名、企业名称和社交媒体链接。典型的作者框不起作用,因为它与发布文章的作者有关。

这方面的最佳做法是什么?我实际上只涉猎了HTML和CSS,所以它的样式设计不会有问题,但不确定自定义字段是否可以在这里工作,或者是否有更好的实践。热爱这个网站和所有人提供的帮助。谢谢

2 个回复
SO网友:Brijesh Dhami

将新自定义字段添加到作者配置文件

function my_epl_custom_user_contact( $contactmethods ) {
    $contactmethods[\'custom\']   = __( \'Custom\', \'easy-property-listings\' );    
    return $contactmethods;
}
add_filter (\'user_contactmethods\',\'my_epl_custom_user_contact\',10,1);
创建自定义字段的HTML输出

function my_epl_get_custom_author_html($html = \'\') {
    global $epl_author;    
    if ( $epl_author->custom != \'\' ) {
        $html = \'
            <a class="epl-author-icon author-icon custom-icon-24" href="http://custom.com/\' . $epl_author->custom . \'"
                title="\'.__(\'Follow\', \'easy-property-listings\' ).\' \' . $epl_author->name . \' \'.__(\'on Custom\', \'easy-property-listings\' ).\'">\'.
                 __(\'C\', \'easy-property-listings\' ).
            \'</a>\';
    }
    return $html;
}
添加自定义字段筛选器

function my_epl_custom_social_icons_filter( $html ) { 
    $html .= my_epl_get_custom_author_html();
    return $html;
}
add_filter( \'epl_author_email_html\' , \'my_epl_custom_social_icons_filter\' );

SO网友:Ben HartLenn

大多数情况下,您可以使用内置的自定义字段,但高级自定义字段对于简化作者图像部分尤其有用,值得使用。激活插件后,您可以转到Dashboard>>Custom Fields(仪表板>>自定义字段),轻松创建一个名为“Custom Author”(自定义作者)或任何适合您的新字段组,它应该自动附加到posts post类型。之后,可以为自定义作者名称添加文本字段,为自定义作者图像添加图像字段,并为可能需要显示的任何其他内容添加字段。

一旦您创建了高级自定义字段(此处不太深入),用户就可以在任何帖子上填写高级自定义作者字段,并且您可以在主题模板文件中输出这些字段(可能是查看单个帖子时的single.php)。输出/显示部分完全由您决定,但我将展示一种方法,您可以显示一个名为“custom\\u author\\u name”的自定义文本字段和一个名为“custom\\u author\\u image”的自定义图像字段:

<section class="post-meta">

    <span class=\'post-author-name\'>
    <?php
        $customAuthor = sanitize_text_field( get_field(\'custom_author_name\') ); // Store safe/sanitized value of custom field in variable
        if($customAuthor) { // If custom_author_name field is set, display it
            echo $customAuthor;
        } else { // Otherwise fallback to display the normal post author name
            echo get_the_author();
        }
    ?>
    </span>

    <?php
        $customAuthorImage = get_field(\'custom_author_image\');
        if($customAuthorImage) { // If custom_author_image field is set...

            // ... Then put effort into storing sanitized data we need
            $url = esc_url( $customAuthorImage[\'url\'] );
            $alt = esc_attr( $customAuthorImage[\'alt\'] );
            $title = esc_attr( $customAuthorImage[\'title\'] );

            // ... And finally display our custom image field in an img tag
            echo \'<img class="custom-author-image" src="\' . $url . \'" alt="\' . $alt . \'" title="\' . $title . \'">\';
        } 
    ?>

</section>
就最佳实践而言,在php中使用强逻辑(您可以在检查是否设置了自定义字段的方式中添加更强的条件逻辑,并且可能仅在设置了作者姓名的情况下显示图像),并且确保在前端输出数据时清理或转义所有数据。

此外,如果您在这方面遇到困难,我很乐意提供更多帮助,只需在此处添加评论。

相关推荐

是否可以取消对特定帖子类型的POSTS_PER_PAGE限制?

我想知道我是否可以取消特定帖子类型的posts\\u per\\u页面限制。在存档中。php页面我显示不同的帖子类型,对于特定的“出版物”帖子类型,我想显示所有帖子。我如何在不影响传统“post”类型的情况下实现这一点?