要在WordPress后台用户列表中搜索用户自定义字段(user_meta),您可以通过编写自定义函数和使用筛选器实现。下面是实现此功能的步骤:
- 打开
functions.php
文件或您自定义的主题文件。 - 添加以下代码段到文件中:
1 |
<span class="hljs-comment">// 添加搜索用户自定义字段的过滤器</span> <span class="hljs-title function_ invoke__">add_action</span>(<span class="hljs-string">'pre_user_query'</span>, <span class="hljs-string">'search_user_meta'</span>); <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">search_user_meta</span>(<span class="hljs-params"><span class="hljs-variable">$user_query</span></span>) </span>{ <span class="hljs-comment">// 获取搜索关键字</span> <span class="hljs-variable">$search_term</span> = <span class="hljs-keyword">isset</span>(<span class="hljs-variable">$_REQUEST</span>[<span class="hljs-string">'s'</span>]) ? <span class="hljs-title function_ invoke__">sanitize_text_field</span>(<span class="hljs-variable">$_REQUEST</span>[<span class="hljs-string">'s'</span>]) : <span class="hljs-string">''</span>; <span class="hljs-comment">// 检查是否存在搜索关键字</span> <span class="hljs-keyword">if</span> (!<span class="hljs-keyword">empty</span>(<span class="hljs-variable">$search_term</span>)) { <span class="hljs-comment">// 设置用户查询参数</span> <span class="hljs-variable">$user_query</span>->query_where .= <span class="hljs-string">" OR (um.meta_key = 'your_custom_field_key' AND um.meta_value LIKE '%<span class="hljs-subst">{$search_term}</span>%')"</span>; } } <span class="hljs-comment">// 添加自定义字段列到用户列表</span> <span class="hljs-title function_ invoke__">add_action</span>(<span class="hljs-string">'manage_users_columns'</span>, <span class="hljs-string">'add_custom_field_column'</span>); <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">add_custom_field_column</span>(<span class="hljs-params"><span class="hljs-variable">$columns</span></span>) </span>{ <span class="hljs-variable">$columns</span>[<span class="hljs-string">'custom_field'</span>] = <span class="hljs-string">'Custom Field'</span>; <span class="hljs-keyword">return</span> <span class="hljs-variable">$columns</span>; } <span class="hljs-comment">// 显示自定义字段值</span> <span class="hljs-title function_ invoke__">add_action</span>(<span class="hljs-string">'manage_users_custom_column'</span>, <span class="hljs-string">'display_custom_field_value'</span>, <span class="hljs-number">10</span>, <span class="hljs-number">3</span>); <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">display_custom_field_value</span>(<span class="hljs-params"><span class="hljs-variable">$value</span>, <span class="hljs-variable">$column_name</span>, <span class="hljs-variable">$user_id</span></span>) </span>{ <span class="hljs-keyword">if</span> (<span class="hljs-variable">$column_name</span> === <span class="hljs-string">'custom_field'</span>) { <span class="hljs-comment">// 替换'your_custom_field_key'为您实际的自定义字段键名</span> <span class="hljs-variable">$custom_field_value</span> = <span class="hljs-title function_ invoke__">get_user_meta</span>(<span class="hljs-variable">$user_id</span>, <span class="hljs-string">'your_custom_field_key'</span>, <span class="hljs-literal">true</span>); <span class="hljs-variable">$value</span> = !<span class="hljs-keyword">empty</span>(<span class="hljs-variable">$custom_field_value</span>) ? <span class="hljs-variable">$custom_field_value</span> : <span class="hljs-string">'N/A'</span>; } <span class="hljs-keyword">return</span> <span class="hljs-variable">$value</span>; } |
请确保将上述代码中的 'your_custom_field_key'
替换为您想要搜索的用户自定义字段的键名。
- 保存文件并重新加载WordPress后台。
现在,您应该能够在用户列表页面的搜索栏中输入关键字并根据用户自定义字段进行搜索。搜索结果将显示在用户列表中,并通过添加名为 "Custom Field" 的自定义字段列来显示相关自定义字段的值。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。