所以,在我的wordpress网站上,我有一个名为“书籍”的页面和子页面,每个页面都包含一些书籍的信息。
它看起来像这样:
我想做的是为“Books”页面创建自定义页面模板,该页面将列出所有子页面。我设法找到了:
<div id="submenu">
<ul>
<?php
if($post->post_parent)
$children = wp_list_pages("title_li=&child_of=".$post->post_parent."&echo=0");
else
$children = wp_list_pages("title_li=&child_of=".$post->ID."&echo=0");
if ($children) { ?>
<?php echo $children; ?>
<?php } ?>
</ul>
</div>
威奇做的工作,但我如何才能创建模板,这将使用一些关于这本书的更多信息。i、 e.书籍标题、书籍封面图片以及使用自定义字段创建的其他一些信息。
我不确定我是否正确地解释了这一点,所以我将尝试勾画它。这就是我试图通过书籍页面的页面模板获得的内容:
红色文本显示需要从子页面“提取”的内容类型。
SO网友:RachieVee
假设您位于页面模板或自定义页面模板上,您要做的第一件事是获取当前页面ID,然后使用该ID获取子项。有了这些子项后,显示这些子项的内容。
尝试使用get_children(); 您也可以尝试get_page_children 但就我的例子而言,我使用的是get\\u children:
<?php
//assuming you\'re on a page template in the loop
$this_page_id = get_the_ID(); //get this page ID
$args = array(
\'post_parent\' => $this_page_id, //parent\'s ID
\'post_type\' => \'page\', //just want pages
\'post_status\' => \'publish\' //only pages that are published
);
$children_array = get_children( $args ); //get children pages
foreach( $children_array as $child_page ){
//for each child page
$child_id = $child_page->ID; //get the child ID
echo get_the_title( $child_id ); //get the child title
echo get_post_meta( $child_id, \'custom-field-name\', true ); //get the child custom field
echo get_the_content( $child_id ); //get the child content
}
?>
使用时用自定义字段名替换“自定义字段名”
get_post_meta.
Wp_list_pages 如果您想拥有页面菜单,而不是从页面中输出信息,则更合适-类似于
wp_list_categories 适用于类别。希望有帮助!
SO网友:Heidi
如果您使用的是帖子(而不是页面)和类别,可以通过为类别手册中的所有帖子创建自定义存档模板来实现。例如,这是一个摄影博客上的“每周图片”分类页面。http://blog.keithberr.com/category/image-of-the-week/ 在这种情况下,我复制了类别。php并将其保存为category-21。php(21是此特定类别的ID。)然后我修改了它以显示发布日期、图像和标题。您可以进一步对其进行自定义,以包含摘录或自定义字段。
我不确定你的网站上还有什么内容。如果您有其他页面内容和博客,那么为书籍创建自定义帖子类型可能会更好。然后,您还可以使用自定义字段或分类法来添加其他信息。然后,您可以通过使用查询创建一个自定义页面来显示所有书籍。
例如,我在一个演示站点上有一个页面,该页面按字母顺序显示自定义帖子类型monsters中所有帖子的列表。http://www.coolwebdev.com/givecamp/monsters/. 模板只是页面怪物。php。查询代码如下:
<ul>
<?php $wp_query = new WP_Query(array(\'showposts\' => 50,
\'post_type\' => array(\'monsters\'),\'orderby\' => \'title\'));?>
<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
<li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
<?php endwhile; ?>
<?php endif; ?>
</ul>
虽然我使用了一个无序的列表,只引入了标题,但您可以将其更改为包含图像、摘录等。