为什么包含在这里不起作用?

时间:2016-11-28 11:24:37

标签: php wordpress

如果我使用echo显式添加我想要的HTML,以下代码可以正常工作,但我希望通过包含标记文件使代码更加干净,该文件位于包含脚本的同一目录中,但是由于某种原因,它不会包括。这是代码:

function render_social_links() {
$current_post_id=get_the_ID();
$them_uri = get_stylesheet_directory_uri();
$featured_image_url = '';
if ( has_post_thumbnail( $current_post_id ) ) {
    $featured_image_id  = get_post_thumbnail_id( $current_post_id );
    $featured_image_url = $featured_image_id ? wp_get_attachment_url( $featured_image_id ) : '';
}
if(is_home() || is_single()){
      if(is_home()){
        $bitlink = $lnk = get_bloginfo('url');
        $bitly = getBitly($bitlink);
        $nam = get_bloginfo('name');
        }
        elseif(is_single($current_post_id)){
            $bitlink = $lnk = get_permalink($current_post_id);
            $bitly = getBitly($bitlink);
            $nam = get_the_title($current_post_id);
        }

        include( __DIR__ . '/social-links.php' );
      }

  }

这是social-links.php中的标记,这个文件是一个子主题,并包含在子函数中.php

<div id="socialleft">
            <ul>
                <li>
                    <img src="'.$them_uri.'/images/social/share-38.png" alt=""/>
                </li>
                <li>
                    <a href="http://www.facebook.com/sharer.php?u='.$lnk.'&amp;t='.$nam.'" title="شارك على فيسبوك" target="_blank">
                </li>
                        <img src="'.$them_uri.'/images/social/facebook-38.png" alt="" />
                    </a>
                </li>
                <li>
                    <a href="http://twitter.com/home/?status='.$nam.' : '.$bitly.'" title="غرد" target="_blank">
                        <img src="'.$them_uri.'/images/social/twitter-38.png" alt="" />
                    </a>
                </li>
                <li>
                    <a href="https://plus.google.com/share?url='.$lnk.'" onclick="javascript:window.open(this.href,
                      \'\', \'menubar=no,toolbar=no,resizable=yes,scrollbars=yes,height=600,width=600\');return false;" title="شارك على جوجل+" target="_blank">
                        <img src="'.$them_uri.'/images/social/Google-plus-38.png" alt="" />
                    </a>
                </li>
            </ul>
        </div>

2 个答案:

答案 0 :(得分:1)

我不知道你的social-links.php是什么。

根据手册http://php.net/manual/en/function.include.php

  

当包含文件时,解析将退出PHP模式并在目标文件的开头进入HTML模式,并在结束时再次恢复。因此,目标文件中应作为PHP代码执行的任何代码都必须包含在有效的PHP开始和结束标记中。

如果social-links.php仅包含HTML,则会将其解析为HTML。

我做了一个简单的测试并且工作了。

teste.php

<?php

function teste_include()
{
    include 'teste_include.php';
}

teste_include();

和teste_included.php

<div>teste 2</div><br><div>teste 3</div>

答案 1 :(得分:0)

我不知道你的social-links.php在哪里

假设您的自定义主题目录中的social-links.php然后使用下面给出的代码来包含您的social-links.php

 include(get_template_directory_uri(). '/social-links.php' );