嗨,我正在尝试通过一个名为surname的字段来输入条目,但它似乎没有起作用。将orderby和sort排序更改会得到相同的结果 - 最新的条目列在最后一个列表中。
任何想法我可能做错了什么?
{exp:query sql="SELECT member_id FROM exp_members WHERE group_id = '5'"}
{exp:member:custom_profile_data member_id="{member_id}" orderby="surname" sort="asc"}
<li><a href="{path=portfolios/gallery/{username}}"><img src="{photo_url}" width="138" height="103" alt="{screen_name}" /></a>
<h3 class="name"><a href="{path=portfolios/gallery2/{username}}">{firstname} {surname}</a></h3></li>
{/exp:member:custom_profile_data}
{/exp:query}
答案 0 :(得分:1)
为了节省一些能量,您可能需要考虑在您的网站上使用Exp-resso中的Freemember。 https://github.com/expressodev/freemember
此模块具有超级简单的语法来执行您想要的操作,并可能添加一些其他功能以使您的ExpressionEngine开发更容易。
答案 1 :(得分:0)
我首先指出,如果你有很多成员,这个嵌套查询可能会让你的服务器陷入困境。使用Query模块一次性获取所有成员数据,然后在没有嵌套custom_profile_data
标记的情况下进行交互将更加高效。您必须考虑使用custom_profile_data
预先操作的变量(如图像网址),但在性能提升方面值得付出努力。
无论:
custom_profile_data
代码仅查询单个成员,因此 orderby 和 sort 不会有任何区别。您的排序需要在exp:query
代码中进行。
{exp:query sql="SELECT m.member_id FROM exp_members m, exp_member_data d WHERE m.group_id = '5' AND d.member_id = m.member_id ORDER BY d.m_field_id_X ASC"}
{exp:member:custom_profile_data member_id="{member_id}"}
<li><a href="{path=portfolios/gallery/{username}}"><img src="{photo_url}" width="138" height="103" alt="{screen_name}" /></a>
<h3 class="name"><a href="{path=portfolios/gallery2/{username}}">{firstname} {surname}</a></h3>
</li>
{/exp:member:custom_profile_data}
{/exp:query}
将m_field_id_X
替换为m_field_id
自定义成员字段的实际surname
(可以通过查看工具→数据→SQL管理器中的exp_member_fields
找到该字段强>)。