我可以动态地将一页的摘录放入另一页的正文中吗?

时间:2013-09-02 18:06:34

标签: php wordpress

我正在使用的主题有一个名为“home”的页面,其主体显示在主页上。我有另一个页面设置称为'约',这是一个详细的页面,很长。我希望主页上有文字,这是关于页面的简短概要。我在“关于”页面的摘录中有这个概要。我有办法在“主页”页面的主体中使用该摘录吗?

通过这样做,我可以告诉客户,所有关于信息都在一个页面中,而不是告诉他去不同的页面来编辑直接相关的东西。

编辑:我想在没有编辑主题代码的情况下这样做,所以通过管理员页面编辑器

2 个答案:

答案 0 :(得分:1)

这听起来就像PHP包含你的' about'你家文件中的文件会给你你想要的东西......

将此代码(或其摘录)放在您的家庭档案中,并确保您的' about.php'文件位于同一个文件夹中......

<body>
    <div id="about">
        <?php include("about.php"); ?>
    </div>
</body>

这样您就可以对您的约会文件进行更改而不会直接影响您的家庭,但更改将应用​​于这两个页面...

答案 1 :(得分:1)

您可以使用以下内容获取about页面的页面摘录,并坚持使用原生wordpress功能,而不是使用“include”:

$about = get_page_by_title( 'ABOUT_TITLE' );
$about_excerpt = $about->post_excerpt;

然后您可以使用以下方法将其回显到主题模板中:

<?php echo $about_excerpt; ?>

如果您想在Wordpress后端中执行此操作,您将创建一个自定义短代码并将上述内容包装到该短代码调用的函数中。然后你就可以把这个短代码放在你想要的任何帖子/页面上。

编辑:

以下是通过短代码执行此操作的示例,以便您可以将其用于“关于”页面或Wordpress中带有摘录的任何其他页面:

add_shortcode( "Excerpt", 'nb_excerpt_shortcode' );
function nb_excerpt_shortcode( $atts, $content = null ) {
extract( shortcode_atts( array(
    'for' => ''
), $atts) );
$page = get_page_by_title( $for );
$excerpt = $page->post_excerpt;

return $excerpt;
}

然后用 [Excerpt for =“About”/]

将其调用