如何在同一页面上显示特定项目的内容?

时间:2015-09-13 作者:Casper

我想知道我怎样才能做到以下几点。我已经创建了所有新闻文章的概述页面。页面顶部有一个大背景图像和一个包含内容的白色方块。我想要的是,当单击一个项目时,它应该用该特定帖子的特征图像和块内的文本内容更新背景图像。因此,还有一点很重要,那就是它不应该打开新页面,而应该只更改当前页面上的内容。在WordPress自定义主题开发中有没有一种简单的方法可以做到这一点?

我认为我应该使用\\u内容和特色图像模板标签,但我如何知道单击了哪个帖子以及应该显示哪些内容?

1 个回复
SO网友:Alhana

如果您不关心此页面的URL,可以在不使用Ajax的情况下使用$_GET 参数。看一看:

// If we have $_GET parameter in URL, we save it in $page variable. Otherwise $page will be empty.
( isset( $_GET[\'page\'] ) ) ? $page = ( int ) $_GET[\'page\'] : $page = \'\';

get_header();

if ( $page != \'\' ) :
    // If $page variable is not empty, we get post(page) by ID
    $header_page = get_post( $page );
    // Then we can print anything we want, using this post object: title, content, custom fields, thumbnail, etc.
    echo $header_page->post_title; // Post title 
    echo apply_filters( \'the_content\', $header_page->post_content ); // Post content
    echo get_post_meta( $page, \'custom_meta_key\', 1 ); // Any custom field
    echo get_the_post_thumbnail ( $page, \'post-thumbnail\' ); // Post thumbnail
endif; 

// Our links will look like so:
?><a href="<?php echo $_SERVER[\'REQUEST_URI\']; ?>?page=123">Some title</a><?php
// Here 123 is ID of page, which content we want to show.

get_footer();
单击此类链接时,您将转到同一页面,但URL中有一个新参数。例如:

http://site.ru/page -> http://site.ru/page?page=123.
但是如果您想拥有“干净”的URL,那么就需要Ajax。

相关推荐

是否可以取消对特定帖子类型的POSTS_PER_PAGE限制?

我想知道我是否可以取消特定帖子类型的posts\\u per\\u页面限制。在存档中。php页面我显示不同的帖子类型,对于特定的“出版物”帖子类型,我想显示所有帖子。我如何在不影响传统“post”类型的情况下实现这一点?