如何将一个或多个页面的页面内容包含在另一个页面中?
离。我有 pageA , pageB 和 pageC ,我想在 pageX
中包含这些页面的内容是否有一个wordpress函数加载指定页面/帖子的帖子?
比如show_post(“pageA”)??
答案 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模板中编写一个帖子查询来显示另一个页面上的多个页面的内容,该模板获取您指定的帖子并将其输出到循环中。
有三种方法可以从数据库中获取帖子内容:
这些链接都指向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内容嵌入其他地方(如在其他网站上),并找到了一些东西......
希望那些是有帮助的。虽然它们都是将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不起作用,则需要完全关闭标题。