Single-{post-type}.php问题中的_Content()

时间:2019-01-23 作者:Zoran Koprek

我有自定义的Post类型“pjesma”(歌曲),唯一能够显示内容的方法是archive-pjesma.php.

工作正常:

<?php get_header();
global $post;
$args = array( \'post_type\' => \'pjesma\', \'posts_per_page\' => 10 );
$lastposts = get_posts( $args );
foreach ( $lastposts as $post ) :
  setup_postdata( $post ); ?>
  <h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a> 
  </h2>
<?php //the_content(); ?>
<?php endforeach; 
wp_reset_postdata(); 

get_footer(); ?>
然后在single-pjesma.php 我只能使用the_title() 所以我用这个echo $post->post_content;. 的内容single-pjesma.php:

<?php get_header(); ?>
<?php
echo "<h1>"; the_title();
echo "</h1>";
echo $post->post_content;
?>
<?php get_footer(); ?>
现在,问题是我已经安装了插件Chords and Lyrics 因此,我可以正确地显示歌词上方的和弦,该插件不会影响内容。我想,内容是存储在数据库中时显示的。

enter image description here

有没有其他方式来显示歌词和和弦,以便它们受到插件的影响?

1 个回复
最合适的回答,由SO网友:Krzysiek Dróżdż 整理而成

首先,你不应该使用get_posts 在你的CPT档案中,WP已经创建了一个查询并选择了应该显示在那里的帖子。所以你的archive-pjesma.php 应如下所示:

<?php get_header(); ?>

<?php while ( have_posts() ) : the_post(); ?>
    <h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
<?php // the_content(); ?>
<?php endwhile; ?>

<?php get_footer();
您还应该在single-pjesma.php:

<?php get_header(); ?>

<?php if ( have_posts() ) : the_post(); ?>
<h1><?php the_title(); ?></h1>
<?php the_content(); ?>
<?php endif; ?>

<?php get_footer();

相关推荐

当in_the_loop()为假时,何时以及为什么is_Single(‘my_cpt’)为真?

我正在使用模板系统的示例代码。此地址的页码:http://project.test/my_cpt/hello-post/.无法理解原因is_singular( \'my_cpt\' ) 是true 虽然in_the_loop() 是false.在页面模板中The Loop "E;“工程”:if ( have_posts() ) { while ( have_posts() ) { the_post(); ?>