我正在使用Wordpress作为此网站的CMS
http://www.seadragon.co.uk/new_site/portfolio.html
...这是我第一次使用wordpress,如果我把术语弄错了,很抱歉。。。。
我的客户需要能够将新项目(案例研究)添加到项目组合部分,并且每个项目都可以有自己的幻灯片。
我想他们可以为每个项目幻灯片创建一个新的帖子类别,然后为每个项目创建一个新页面。
我的问题是如何让我的客户将帖子类别与项目页面相关联(这样我就可以将正确的类别帖子动态地拉到幻灯片中)。我想也许我可以尝试让他们对她创建的类别(sildeshow项目)和她创建的页面(项目)使用相同的命名约定?这听起来有用吗?有没有更好的方法可以做到这一点,或者其他更适合的插件。
这是我的公文包模板中的代码。。。目前,categoryID在查询中是硬编码的。
<div id="slider">
<?php
//Reset Query
//wp_reset_query();
global $wp_query;
$query = "post_type=post&cat=5";
$wp_query = new WP_Query( $query );
if ( have_posts() ) : while ( have_posts() ) : the_post();
echo get_the_post_thumbnail($post->ID, \'large\');
?>
<?php
endwhile; endif;
?>
</div>
<script type="text/javascript">
$(window).load(function() {
$(\'#slider\').nivoSlider();
});
</script>
希望这有点道理?
非常感谢。
Edit: Fixed formatting so embedded code sample would display
最合适的回答,由SO网友:Chris_O 整理而成
更好的解决方案是创建一个;“项目”;post类型和自定义分类法,用于分隔不同类型的项目
我最近在自己的网站上这样做,因为我想有一种方法将我的项目与其他内容分开。我使用jQuery cycle而不是Nivo,但概念是一样的。
自定义帖子类型具有内置的用户界面,因此您的客户添加新项目时不会感到困惑。
它还允许您自定义;“项目”;使用单个项目显示。php模板文件。
我不会讨论如何注册帖子类型,因为The Codex explains this very well 但我将向您展示如何将所有附加的图像获取到帖子并在滑块中显示它们。
<?php
//The following code is for a sample single-post_type.php
?>
<?php get_header(); ?>
<div id="content">
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<div id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
<h1 class="project-title"><?php the_title(); ?></h1>
<div class="entry">
<div id="slider">
<?php
// This gets all the images attached to the current post inside the loop
$args = array(
\'post_type\' => \'attachment\',
\'posts_per_page\' => -1,
\'post_status\' => null,
\'post_parent\' => $post->ID
);
$attachments = get_posts($args);
if ($attachments) {
foreach ($attachments as $attachment) {
echo wp_get_attachment_image($attachment->ID,\'medium\', false);
}
} ?>
</div> <!-- /slider -->
<?php the_content(); ?>
</div> <!-- /post -->
<?php endwhile; else: ?>
<p><?php _e(\'Not Found\',\'your_theme_name\'); ?></p>
<?php endif; ?>
</div>
<?php get_sidebar(); ?>
<?php get_footer(); ?>