php重定向和%s

时间:2018-04-05 17:57:53

标签: php wordpress

我正在尝试更新网站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代码之前的代码。

1 个答案:

答案 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;