Wordpress强调基本主题不会显示精选图像

时间:2014-02-20 13:57:50

标签: php wordpress

我想将Underscores用于构建未来的主题。我试图在content-page.php中建立帖子列表,并注意到没有添加特色图片行。我想让我的特色图片显示在标题下等等。

我删除了function.php中的部分注释,确保支持特色图像;

      <?php
/**
 * Sophie functions and definitions
 *
 * @package Sophie
 */

/**
 * Set the content width based on the theme's design and stylesheet.
 */
if ( ! isset( $content_width ) ) {
    $content_width = 640; /* pixels */
}


if ( ! function_exists( 'sophie_setup' ) ) :
/**
 * Sets up theme defaults and registers support for various WordPress features.
 *
 * Note that this function is hooked into the after_setup_theme hook, which
 * runs before the init hook. The init hook is too late for some features, such
 * as indicating support for post thumbnails.
 */
function sophie_setup() {

    /*
     * Make theme available for translation.
     * Translations can be filed in the /languages/ directory.
     * If you're building a theme based on Sophie, use a find and replace
     * to change 'sophie' to the name of your theme in all the template files
     */
    load_theme_textdomain( 'sophie', get_template_directory() . '/languages' );

    // Add default posts and comments RSS feed links to head.
    add_theme_support( 'automatic-feed-links' );

    /*
     * Enable support for Post Thumbnails on posts and pages.
     *
     * @link http://codex.wordpress.org/Function_Reference/add_theme_support#Post_Thumbnails
     */
    add_theme_support( 'post-thumbnails' );


    // This theme uses wp_nav_menu() in one location.
    register_nav_menus( array(
        'primary' => __( 'Primary Menu', 'sophie' ),
    ) );

    // Enable support for Post Formats.
    add_theme_support( 'post-formats', array( 'aside', 'image', 'video', 'quote', 'link' ) );

    // Setup the WordPress core custom background feature.
    add_theme_support( 'custom-background', apply_filters( 'sophie_custom_background_args', array(
        'default-color' => 'ffffff',
        'default-image' => '',
    ) ) );

    // Enable support for HTML5 markup.
    add_theme_support( 'html5', array( 'comment-list', 'search-form', 'comment-form', ) );
}
endif; // sophie_setup
add_action( 'after_setup_theme', 'sophie_setup' );

/**
 * Register widgetized area and update sidebar with default widgets.
 */
function sophie_widgets_init() {
    register_sidebar( array(
        'name'          => __( 'Sidebar', 'sophie' ),
        'id'            => 'sidebar-1',
        'before_widget' => '<aside id="%1$s" class="widget %2$s">',
        'after_widget'  => '</aside>',
        'before_title'  => '<h1 class="widget-title">',
        'after_title'   => '</h1>',
    ) );
}
add_action( 'widgets_init', 'sophie_widgets_init' );

/**
 * Enqueue scripts and styles.
 */
function sophie_scripts() {
    wp_enqueue_style( 'sophie-style', get_stylesheet_uri() );

    wp_enqueue_script( 'sophie-navigation', get_template_directory_uri() . '/js/navigation.js', array(), '20120206', true );

    wp_enqueue_script( 'sophie-skip-link-focus-fix', get_template_directory_uri() . '/js/skip-link-focus-fix.js', array(), '20130115', true );

    if ( is_singular() && comments_open() && get_option( 'thread_comments' ) ) {
        wp_enqueue_script( 'comment-reply' );
    }
}
add_action( 'wp_enqueue_scripts', 'sophie_scripts' );

/**
 * Implement the Custom Header feature.
 */
//require get_template_directory() . '/inc/custom-header.php';

/**
 * Custom template tags for this theme.
 */
require get_template_directory() . '/inc/template-tags.php';

/**
 * Custom functions that act independently of the theme templates.
 */
require get_template_directory() . '/inc/extras.php';

/**
 * Customizer additions.
 */
require get_template_directory() . '/inc/customizer.php';

/**
 * Load Jetpack compatibility file.
 */
require get_template_directory() . '/inc/jetpack.php';

然后我在我的content-page.php中添加了一行,这就成了这个;

  <?php
/**
 * The template used for displaying page content in page.php
 *
 * @package Sophie
 */
?>

<article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
    <header class="entry-header">
        <h1 class="entry-title"><?php the_title(); ?></h1>
    </header><!-- .entry-header -->

<?php the_post_thumbnail(); ?>

    <div class="entry-content">
        <?php the_content(); ?>
        <?php
            wp_link_pages( array(
                'before' => '<div class="page-links">' . __( 'Pages:', 'sophie' ),
                'after'  => '</div>',
            ) );
        ?>
    </div><!-- .entry-content -->
    <?php edit_post_link( __( 'Edit', 'sophie' ), '<footer class="entry-meta"><span class="edit-link">', '</span></footer>' ); ?>
</article><!-- #post-## -->

现在我有'一些'wordpress知识,这对我来说过去总是有用。为什么现在不出现?当然,在帖子页面上传了一个精选图片,当我使用已经支持它们的另一个主题时,会出现这个特色图片。

我忘记了一步吗?

这是在我的page.php;

 get_header(); ?>

    <div id="primary" class="content-area">
        <main id="main" class="site-main" role="main">

            <?php while ( have_posts() ) : the_post(); ?>

                <?php get_template_part( 'content', 'page' ); ?>

                <?php
                    // If comments are open or we have at least one comment, load up the comment template
                    if ( comments_open() || '0' != get_comments_number() ) :
                        comments_template();
                    endif;
                ?>

            <?php endwhile; // end of the loop. ?>

        </main><!-- #main -->
    </div><!-- #primary -->

<?php get_sidebar(); ?>
<?php get_footer(); ?>

2 个答案:

答案 0 :(得分:0)

在the_post_thumbnail()的function reference page上,我发现了以下内容:

  

此标记必须在The Loop中使用。使用get_the_post_thumbnail($ id,   $ size,$ attr)而不是为任何帖子获取精选图片。

由于您的content-page.php中没有循环,因此您必须使用建议的替代get_the_post_thumbnail()

此功能的所有参数都是可选的,所以我猜它会开箱即用,但如果没有,你可以尝试

get_the_post_thumbnail(get_queried_object_id());

请参阅this stack-exchange答案以供参考。

编辑:

如果您想在循环中放置content-page.php,请在第一篇文章标记之前使用此代码:

<?php get_header(); ?>

    <div id="primary" class="content-area">
        <div id="content" class="site-content" role="main">

            <?php /* The loop */ ?>
            <?php while ( have_posts() ) : the_post(); ?>

这个代码紧跟在文章closign标签之后:

                    <?php comments_template(); ?>
            <?php endwhile; ?>

        </div><!-- #content -->
    </div><!-- #primary -->

<?php get_sidebar(); ?>
<?php get_footer(); ?>

这取自二十三页.php。

另一件事: 您确定您的文件必须命名为content-page.php而不仅仅是page.php吗?

答案 1 :(得分:0)

添加

<?php the_post_thumbnail(); ?>

在循环中。

像这样:

        <?php /* Start the Loop */ ?>
        <?php while ( have_posts() ) : the_post(); ?>
        <?php the_post_thumbnail(); ?>
            <?php



                /*
                 * Include the Post-Format-specific template for the content.
                 * If you want to override this in a child theme, then include a file
                 * called content-___.php (where ___ is the Post Format name) and that will be used instead.
                 */
                get_template_part( 'template-parts/content', get_post_format() );

            ?>


        <?php endwhile; ?>