自定义href属性[php]。 sprintf的()

时间:2015-02-18 12:17:26

标签: php

我是PHP的新手。我正在使用wordpress主题。 我已经安装了一个插件< Photopress-Latest Images>旨在将最新上传的图像显示到媒体库中。它工作正常,但我希望图像href等于固定的地址(wordpress主题的照片页面)而不是元素(照片)页面。 这个插件似乎很简单(我说似乎是因为我不太了解它)而且我认为这是我应该改变以应用所需行为的代码块:

while ( have_posts() ) {

            the_post();

            $i++;

            $icon = sprintf(
                '(html %s class="%s")(html a class="nofancybox" href="%s")%s(html /a)(html /%s)',
                $icon_tag,
                $icon_class,
                get_attachment_link( $post->ID ),
                wp_get_attachment_image( $post->ID, $size ),
                $icon_tag


            );

由于html没有启用堆栈溢出的代码块,上面代码的第五行很奇怪(我使用括号来定义html块的开头和结尾)。 当我尝试更改此代码中的href地址时,该插件不再起作用,而不是在照片中显示它显示一些文本。

1 个答案:

答案 0 :(得分:0)

根据sprintf,您需要更改sprintf启动后替换第一行href中的%s,并删除get_attachment_link($ post-> ID),这样您就不会有不匹配的计数需要的参数(每个%s需要一个条目)。 例如 while(have_posts()){

        the_post();

        $i++;

        $icon = sprintf(
            '(html %s class="%s")(html a class="nofancybox" href="http://example.com")%s(html /a)(html /%s)',
            $icon_tag,
            $icon_class,
            wp_get_attachment_image( $post->ID, $size ),
            $icon_tag


        );

或者您只需修改get_attachment_link($ post-> ID)并将其设为字符串。

while(have_posts()){

        the_post();

        $i++;

        $icon = sprintf(
            '(html %s class="%s")(html a class="nofancybox" href="%s")%s(html /a)(html /%s)',
            $icon_tag,
            $icon_class,
            "http://example.com",
            wp_get_attachment_image( $post->ID, $size ),
            $icon_tag


        );

我希望你提出问题。