Php 自定义Wordpress以在索引页中按id显示帖子

Php 自定义Wordpress以在索引页中按id显示帖子,php,wordpress-theming,wordpress,Php,Wordpress Theming,Wordpress,我在wordpress的索引页面中显示帖子时遇到问题,标题和内容都不显示。目前,我正在修改212模板的index.php以按id显示自定义帖子,我的目标是在我的索引页面中显示3篇帖子,下面是我的代码: <?php /** * The main template file * * This is the most generic template file in a WordPress theme * and one of the two required files for a t

我在wordpress的索引页面中显示帖子时遇到问题,标题和内容都不显示。目前,我正在修改212模板的index.php以按id显示自定义帖子,我的目标是在我的索引页面中显示3篇帖子,下面是我的代码:

<?php
/**
 * The main template file
 *
 * This is the most generic template file in a WordPress theme
 * and one of the two required files for a theme (the other being style.css).
 * It is used to display a page when nothing more specific matches a query.
 * For example, it puts together the home page when no home.php file exists.
 *
 * @link http://codex.wordpress.org/Template_Hierarchy
 *
 * @package WordPress
 * @subpackage Twenty_Twelve
 * @since Twenty Twelve 1.0
 */

get_header(); ?>

    <div id="primary" class="site-content">
        <div id="content" role="main">
        <br><br>
        <?php if ( have_posts() ) : ?>

            <?php /* Start the Loop */ ?>
            <?php while ( have_posts() ) : the_post(); ?>
                <?php get_template_part( 'content', get_post_format() ); ?>
            <?php endwhile; ?>

            <?php twentytwelve_content_nav( 'nav-below' ); ?>

        <?php else : ?>

            <article id="post-0" class="post no-results not-found">

            <?php if ( current_user_can( 'edit_posts' ) ) :
                // Show a different message to a logged-in user who can add posts.
            ?>
                <header class="entry-header">
                    <h1 class="entry-title"><?php _e( 'No posts to display', 'twentytwelve' ); ?></h1>
                </header>

                <div class="entry-content">
                    <p><?php printf( __( 'Ready to publish your first post? <a href="%s">Get started here</a>.', 'twentytwelve' ), admin_url( 'post-new.php' ) ); ?></p>
                </div><!-- .entry-content -->

            <?php else :
                // Show the default message to everyone else.
            ?>
                <header class="entry-header">
                    <h1 class="entry-title"><?php _e( 'Nothing Found', 'twentytwelve' ); ?></h1>
                </header>

                <div class="entry-content">
                    <p><?php _e( 'Apologies, but no results were found. Perhaps searching will help find a related post.', 'twentytwelve' ); ?></p>
                    <?php get_search_form(); ?>
                </div><!-- .entry-content -->
            <?php endif; // end current_user_can() check ?>

            </article><!-- #post-0 -->

        <?php endif; // end have_posts() check ?>

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

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



.,'Twentyleven'),管理员url('post new.php');?>

上面的代码是wordpress中的默认index.php模板。我将此代码替换为:

 <?php /* Start the Loop */ ?>
 <?php while ( have_posts() ) : the_post(); ?>
 <?php get_template_part( 'content', get_post_format() ); ?>
 <?php endwhile; ?>
 <?php twentytwelve_content_nav( 'nav-below' ); ?>

对此,因为我只想通过id显示post 23

 <?php $the_query = new WP_Query( 'page_id=23' ) ?>
 <?php while ( $the_query->have_posts() ) : ?>
 <?php $the_query->the_post(); ?>
 <?php the_title(); ?>
 <?php the_content(); ?>
 <?php endwhile; ?>
 <?php wp_reset_postdata(); ?>

因此,我的新index.php的全部代码是:

<?php
/**
 * The main template file
 *
 * This is the most generic template file in a WordPress theme
 * and one of the two required files for a theme (the other being style.css).
 * It is used to display a page when nothing more specific matches a query.
 * For example, it puts together the home page when no home.php file exists.
 *
 * @link http://codex.wordpress.org/Template_Hierarchy
 *
 * @package WordPress
 * @subpackage Twenty_Twelve
 * @since Twenty Twelve 1.0
 */
get_header();
?>

<div id="primary" class="site-content">
    <div id="content" role="main">
        <br><br>
        <?php if (have_posts()) : ?>

            <?php $the_query = new WP_Query('page_id=23') ?>
            <?php while ($the_query->have_posts()) : ?>
                <?php $the_query->the_post(); ?>
                <?php the_title(); ?>
                <?php the_content(); ?>
            <?php endwhile; ?>
            <?php wp_reset_postdata(); ?>

        <?php else : ?>

            <article id="post-0" class="post no-results not-found">

                <?php
                if (current_user_can('edit_posts')) :
                    // Show a different message to a logged-in user who can add posts.
                    ?>
                    <header class="entry-header">
                        <h1 class="entry-title"><?php _e('No posts to display', 'twentytwelve'); ?></h1>
                    </header>

                    <div class="entry-content">
                        <p><?php printf(__('Ready to publish your first post? <a href="%s">Get started here</a>.', 'twentytwelve'), admin_url('post-new.php')); ?></p>
                    </div><!-- .entry-content -->

                <?php
                else :
                    // Show the default message to everyone else.
                    ?>
                    <header class="entry-header">
                        <h1 class="entry-title"><?php _e('Nothing Found', 'twentytwelve'); ?></h1>
                    </header>

                    <div class="entry-content">
                        <p><?php _e('Apologies, but no results were found. Perhaps searching will help find a related post.', 'twentytwelve'); ?></p>
                    <?php get_search_form(); ?>
                    </div><!-- .entry-content -->
    <?php endif; // end current_user_can() check  ?>

            </article><!-- #post-0 -->

<?php endif; // end have_posts() check  ?>

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

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



.,'Twentyleven'),admin_url('post-new.php');?>


这就是我的全部,伙计们。你能帮助我吗?显示帖子有什么问题吗?提前谢谢大家。:)

您需要显示id为23的帖子。对吧?

<?php if (have_posts()) : ?>

            <?php $the_query = new WP_Query('p=23') ?> 
            <?php while ($the_query->have_posts()) : ?>
                <?php $the_query->the_post(); ?>
                <?php the_title(); ?>
                <?php the_content(); ?>
            <?php endwhile; ?>
            <?php wp_reset_postdata(); ?>

        <?php else : ?>

如果你不想使用
Wp\u查询的方法
试试这个:

<div id="primary" class="site-content">
    <div id="content" role="main">
        <br><br>
        <?php if (have_posts()) : ?>
        <?php $post = get_post(23);?>
         <?php echo $post->post_title; ?>
         <?php echo $post->post_content; ?>
        <?php else : ?>

            <article id="post-0" class="post no-results not-found">

                <?php
                if (current_user_can('edit_posts')) :
                    // Show a different message to a logged-in user who can add posts.
                    ?>
                    <header class="entry-header">
                        <h1 class="entry-title"><?php _e('No posts to display', 'twentytwelve'); ?></h1>
                    </header>

                    <div class="entry-content">
                        <p><?php printf(__('Ready to publish your first post? <a href="%s">Get started here</a>.', 'twentytwelve'), admin_url('post-new.php')); ?></p>
                    </div><!-- .entry-content -->

                <?php
                else :
                    // Show the default message to everyone else.
                    ?>
                    <header class="entry-header">
                        <h1 class="entry-title"><?php _e('Nothing Found', 'twentytwelve'); ?></h1>
                    </header>

                    <div class="entry-content">
                        <p><?php _e('Apologies, but no results were found. Perhaps searching will help find a related post.', 'twentytwelve'); ?></p>
                    <?php get_search_form(); ?>
                    </div><!-- .entry-content -->
    <?php endif; // end current_user_can() check  ?>

            </article><!-- #post-0 -->

<?php endif; // end have_posts() check  ?>

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

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



.,'Twentyleven'),admin_url('post-new.php');?>


您缺少以下内容:

$query = new WP_Query( 'p=7' );
另一种方法是,您可以在如下查询中为特定帖子尝试
query\u posts()

<?php query_posts('p=23'); ?>
    <?php while (have_posts()) : the_post(); ?>
        <h4><?php the_title(); ?></h4>
        <?php the_content(); ?>
    <?php endwhile;?>
<?php get_footer(); ?>

它可以工作!谢谢顺便问一下,我如何调整默认的文本格式?