我正在尝试更新网站bwa.org的搜索功能。现在找到一个编写器功能不起作用。如果你去here并搜索" phil"或者我们的任何其他作家,你将得到正确的结果,但他们包含错误的超链接。点击用户名称或"查看完整个人资料"应该将它们带到后端wordpress用户界面,雇主/搜索者可以在其中获得更完整的个人资料视图。目前,这些超链接会将您带到他们已撰写或评论过的每个帖子的列表中。
我认为我已将问题缩小到这段代码:
$url = '/author/'.$res->user_nicename;
printf('<div class="user" id="user-%s" style="margin-bottom:15px;clear:left;border-bottom:1px solid #dfdfdf;">
<span class="username"><a href="%s">%s</a></span>
<dl id="usersearch" style="margin:5px 0 0 20px;">
<dt>Summary:</dt><dd>%s</dd>
<dt>Specialty:</dt><dd>%s</dd>
%s
</dl>
<p style="clear:left;padding-left:20px;">View <a href="%s">%s\'s full profile</a></p>
</div>',
$res->ID,
"/main".$url,
$res->display_name,
$summary,
$specialty,
(isset($_POST['city']) && !empty($_POST['city']) ? sprintf('<dt>City: </dt><dd>%s</dd>',$city) : ''),
"/main".$url,
$res->display_name);
}
echo '<p style="clear:left; padding-top:45px">Would you like to <button value="search again" onclick="window.location=\'/main/find-a-writer/\'"/>Search Again</button>?</p>';
}
我认为问题是%s是指链接到所有帖子数据的字符串。我已经读过其他一些关于%s如何只是字符串占位符的问题,但我不确定字符串的分配位置。以上是它第一次出现在代码中。有谁知道如何重新分配%s占位符?
其他带有$ result的PHP代码:
$results = $wpdb->get_results($q);
$results = $wpdb->get_results($q);
if (count($results) > 0) {
foreach ($results as $res) {
$q2 = "SELECT meta_key, meta_value FROM wp_usermeta WHERE meta_key IN ('wpum_specialty', 'wpum_City', 'wpum_summary', 'last_name', 'first_name') AND user_id = ".$res->ID;
$res2 = $wpdb->get_results($q2);
$summary = '';
$keywords = '';
$software = '';
$specialty = '';
foreach ($res2 as $r2) {
switch ($r2->meta_key) {
case 'wpum_summary':
$summary = $r2->meta_value;
break;
case 'wpum_City':
$city = $r2->meta_value;
break;
case 'wpum_specialty':
$specialty = $r2->meta_value;
break;
}
}
第二个代码块是我第一个PHP代码之前的代码。
答案 0 :(得分:0)
我会尝试使用sprintf()
而不是printf()
。
$result = sprintf('<div class="user" id="user-%s" style="margin-bottom:15px;clear:left;border-bottom:1px solid #dfdfdf;">
<span class="username"><a href="%s">%s</a></span>
<dl id="usersearch" style="margin:5px 0 0 20px;">
<dt>Summary:</dt>
<dd>%s</dd>
<dt>Specialty:</dt>
<dd>%s</dd>
%s
</dl>
<p style="clear:left;padding-left:20px;">View <a href="%s">%s\'s full profile</a></p>
</div>',$res->ID,"/main" . $url,$res->display_name,$summary,$specialty,(isset($_POST['city']) && !empty($_POST['city']) ? sprintf('<dt>City:</dt><dd>%s</dd>', $city) : ''),"/main" . $url,$res->display_name);
print $result;