Wordpress:将一个页面的内容包含在另一个页面中

时间:2010-11-03 19:10:01

标签: php wordpress

如何将一个或多个页面的页面内容包含在另一个页面中?

离。我有 pageA pageB pageC ,我想在 pageX

中包含这些页面的内容

是否有一个wordpress函数加载指定页面/帖子的帖子?
比如show_post(“pageA”)??

8 个答案:

答案 0 :(得分:46)

您好 @dany

WordPress核心本身没有show_post()功能,但写起来非常简单:

function show_post($path) {
  $post = get_page_by_path($path);
  $content = apply_filters('the_content', $post->post_content);
  echo $content;
}

请注意,这将使用页面的路径调用,即:

<?php show_post('about');  // Shows the content of the "About" page. ?>
<?php show_post('products/widget1');  // Shows content of the "Products > Widget" page. ?>

当然,如果WordPress核心在将来添加同名函数,我可能不会将函数命名为show_post()。你的选择。

此外, @kevtrout 没有任何意义,因为我知道他非常好,考虑将来在StackOverflow的姐妹网站WordPress Answers上发布你的WordPress问题。 WordPress爱好者在那里回答问题的比例要高得多。

希望这有帮助。

-Mike

答案 1 :(得分:2)

页面只是帖子,数据库中的post_type为“page”。您可以通过在pageX模板中编写一个帖子查询来显示另一个页面上的多个页面的内容,该模板获取您指定的帖子并将其输出到循环中。

有三种方法可以从数据库中获取帖子内容:

  1. get_posts
  2. query_posts
  3. WP_Query
  4. 这些链接都指向WordPress Codex。 Get_posts和query_posts有一个可用的参数'page_id',您可以在其中指定要检索和显示的页面的ID。

答案 2 :(得分:2)

您可以安装插件"Improved Include Page"。安装完成后,创建页面X并输入:

[include-page id="123"]
[include-page id="124"]
[include-page id="125"]

其中这些分别是A,B和C页的ID

答案 3 :(得分:2)

我在Wordpress论坛上发布了this answer。你可以在functions.php中添加一些代码,然后只要你喜欢就使用短代码。

function get_post_page_content( $atts ) {
        extract( shortcode_atts( array(
            'id' => null,
            'title' => false,
        ), $atts ) );

        $the_query = new WP_Query( 'page_id='.$id );
        while ( $the_query->have_posts() ) {
            $the_query->the_post();
                if($title == true){
                the_title();
                }
                the_content();
        }
        wp_reset_postdata();

    }
    add_shortcode( 'my_content', 'get_post_page_content' );

对于短代码,

[my_content id="Enter your page id number" title=Set this to true if you want to show title /]

答案 4 :(得分:1)

<?php query_posts('p=43');

global $more;
//set $more to 0 in order to only get the first part of the post
$more = 0; 

    // the Loop
    while (have_posts()) : the_post(); 

     // the content of the post ?>
    the_title();
    the_content(); 

    endwhile; ?>

这显然是帖子的一部分,我从wordpress codex获得了详细信息。

答案 5 :(得分:0)

有趣......我四处寻找如何将Wordpress内容嵌入其他地方(如在其他网站上),并找到了一些东西......

  • www。 shooflydesign.org/buzz/past/embedding_wordpress。 HTML
    • 演示如何使用php脚本在另一个站点中嵌入Wordpress内容;也许只是用同样的东西将Wordpress嵌入其中?
  • www。 corvidworks。 COM /用品/ WordPress的内容上,其他的页面
    • 类似的概念;将Wordpress嵌入另一页;只是尝试在新的WP帖子中使用该工具
  • 自己喂食
    • 我的搜索提出了一些建议,只是使用您自己博客的Feed来嵌入帖子。什么都没有阻止。您可能希望它自动化,因此重新调整Feed看起来可能会有问题,但根据您的目的,它值得一试。

希望那些是有帮助的。虽然它们都是将WP内容放在某个地方其他而不是WP的解决方案......但它们可能适用于您提出的问题,并允许您在X上显示A,B和C.

答案 6 :(得分:0)

有一个Wordpress函数可以使用query_posts()在另一个内容中显示特定页面的内容:

<?php query_posts("posts_per_page=1&post_type=page&post_id=134"); the_post(); ?>

您将要显示的页数设置为1,帖子类型是页面而不是帖子和页面ID

答案 7 :(得分:0)

基特·约翰逊(Kit Johnson)的创建简码的wordpress论坛解决方案有效,但是将插入的页面添加到新页面的顶部,而不是添加简码的位置。虽然关闭,但可能对其他人有用。

在wordpress帖子中,我将其拼凑在一起,从而插入了放置简码的页面:

function get_post_page_content( $atts ) {
    extract( shortcode_atts( array(
        'id' => null,
        'title' => false,
    ), $atts ) );
    $output = "";       

    $the_query = new WP_Query( 'page_id='.$id );
    while ( $the_query->have_posts() ) {
        $the_query->the_post();
            if($title == true){
            $output .= get_the_title();
            }
            $output .= get_the_content();
    }
    wp_reset_postdata();
    return $output;

}

然后,短码位将按预期工作。如果您不希望标题,title = false不起作用,则需要完全关闭标题。