Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Wordpress自定义帖子类型索引分页_Php_Wordpress_Html_Pagination_Content Management System - Fatal编程技术网

Php Wordpress自定义帖子类型索引分页

Php Wordpress自定义帖子类型索引分页,php,wordpress,html,pagination,content-management-system,Php,Wordpress,Html,Pagination,Content Management System,我已经为我的主题创建了一个名为“项目”的自定义帖子类型。在我的项目页面上,我当前正在使用以下代码在一个页面上显示所有项目 <?php $args = array( 'post_type' => 'bw_projects', 'posts_per_page' => 18 ); $loop = new WP_Query( $args ); while ( $loop->have_posts() )

我已经为我的主题创建了一个名为“项目”的自定义帖子类型。在我的项目页面上,我当前正在使用以下代码在一个页面上显示所有项目

<?php
$args = array( 'post_type' => 'bw_projects', 'posts_per_page' => 18 );
                    $loop = new WP_Query( $args );
                    while ( $loop->have_posts() ) : $loop->the_post();

                    echo '<div class="project p-project" data-filter="">';
                    echo '<a href="'.get_permalink( $post->ID).'">';  
                    the_post_thumbnail();
                    echo '</a>'; 
                    echo '</div>';

                    endwhile;

                ?>

我使用的是archive-projects.php,它使用的分页与posts非常相似。代码如下

    <?php
    if ( have_posts() ) :

        /* Start the Loop */
        while ( have_posts() ) : the_post();

            get_template_part( 'template-parts/post/contentp', get_post_format() );

        endwhile;

    else :

        get_template_part( 'template-parts/post/contentp', 'none' );

    endif;
    ?>
    <nav>
        <ul class="pager">
            <li><?php next_posts_link( 'Previous' ); ?></li>
            <li><?php previous_posts_link( 'Next' ); ?></li>
        </ul>
    </nav>


如何创建分页项目主页,而不是仅显示所有可用项目。我是要添加到现有的数组中(示例1),还是应该使用特定的模板(例如home projects.php)?

您好,请检查下面的代码以进行分页

<?php
global $wp_query;
$paged = ( get_query_var('paged') ) ? get_query_var('paged') : 1;
$args = array('post_type' => 'bw_projects', 'posts_per_page' => 5, 'paged' => $paged);
$wp_query = new WP_Query($args); ?>
<?php if ( $wp_query->have_posts() ) : ?>
<?php while ( $wp_query->have_posts() ) : $wp_query->the_post(); ?>
    <h2><?php the_title(); ?></h2>
<?php endwhile; ?>
<div class="pagination">
    <?php previous_posts_link( 'New projects;' ); ?>
    <?php next_posts_link('Old projects;') ?>
</div>
<?php wp_reset_postdata(); ?>
<?php else:  ?>
    <p><?php _e( 'No results' ); ?></p>
<?php endif; ?>
<?php wp_reset_query(); ?>


请检查下面的代码以进行分页

<?php
global $wp_query;
$paged = ( get_query_var('paged') ) ? get_query_var('paged') : 1;
$args = array('post_type' => 'bw_projects', 'posts_per_page' => 5, 'paged' => $paged);
$wp_query = new WP_Query($args); ?>
<?php if ( $wp_query->have_posts() ) : ?>
<?php while ( $wp_query->have_posts() ) : $wp_query->the_post(); ?>
    <h2><?php the_title(); ?></h2>
<?php endwhile; ?>
<div class="pagination">
    <?php previous_posts_link( 'New projects;' ); ?>
    <?php next_posts_link('Old projects;') ?>
</div>
<?php wp_reset_postdata(); ?>
<?php else:  ?>
    <p><?php _e( 'No results' ); ?></p>
<?php endif; ?>
<?php wp_reset_query(); ?>

请按照以下步骤进行尝试:

将“paged”参数添加到查询中

如果WP\u Query正在更改主循环,并且未设置“paged”参数,则需要使用
get\u Query\u var()
添加它。这就是WordPress确切知道它在哪一页的原因

例如,如果您的查询如下所示(不带“paged”参数):


您可以这样添加参数:

<?php
$paged = ( get_query_var( 'paged' ) ) ? get_query_var( 'paged' ) : 1;

$the_query = new WP_Query( 'posts_per_page=3&paged=' . $paged ); 
?>

下一个示例与上面的示例完全相同,但具有数组中的参数:

<?php
$paged = ( get_query_var( 'paged' ) ) ? get_query_var( 'paged' ) : 1;
$args = array(
  'posts_per_page' => 3,
  'paged'          => $paged
);

$the_query = new WP_Query( $args ); 
?>

因此,在您的具体情况下,它将类似于:

<?php
                $paged = ( get_query_var( 'paged' ) ) ? get_query_var( 'paged' ) : 1;
                $args = array( 'post_type' => 'bw_projects', 'posts_per_page' => 18, 'paged' => $paged );
                $loop = new WP_Query( $args );
                while ( $loop->have_posts() ) : $loop->the_post();

                echo '<div class="project p-project" data-filter="">';
                echo '<a href="'.get_permalink( $post->ID).'">';  
                the_post_thumbnail();
                echo '</a>'; 
                echo '</div>';

                endwhile;

            ?>

在添加分页之后,重置循环也可能是一个好主意,以便将WP返回到物理页面(而不是归档列表)。您可以通过以下方式执行此操作:

<?php wp_reset_postdata(); ?>

请按照以下步骤进行尝试:

将“paged”参数添加到查询中

如果WP\u Query正在更改主循环,并且未设置“paged”参数,则需要使用
get\u Query\u var()
添加它。这就是WordPress确切知道它在哪一页的原因

例如,如果您的查询如下所示(不带“paged”参数):


您可以这样添加参数:

<?php
$paged = ( get_query_var( 'paged' ) ) ? get_query_var( 'paged' ) : 1;

$the_query = new WP_Query( 'posts_per_page=3&paged=' . $paged ); 
?>

下一个示例与上面的示例完全相同,但具有数组中的参数:

<?php
$paged = ( get_query_var( 'paged' ) ) ? get_query_var( 'paged' ) : 1;
$args = array(
  'posts_per_page' => 3,
  'paged'          => $paged
);

$the_query = new WP_Query( $args ); 
?>

因此,在您的具体情况下,它将类似于:

<?php
                $paged = ( get_query_var( 'paged' ) ) ? get_query_var( 'paged' ) : 1;
                $args = array( 'post_type' => 'bw_projects', 'posts_per_page' => 18, 'paged' => $paged );
                $loop = new WP_Query( $args );
                while ( $loop->have_posts() ) : $loop->the_post();

                echo '<div class="project p-project" data-filter="">';
                echo '<a href="'.get_permalink( $post->ID).'">';  
                the_post_thumbnail();
                echo '</a>'; 
                echo '</div>';

                endwhile;

            ?>

在添加分页之后,重置循环也可能是一个好主意,以便将WP返回到物理页面(而不是归档列表)。您可以通过以下方式执行此操作:

<?php wp_reset_postdata(); ?>


为什么要从这里开始使用自己的查询?Wordpress的归档功能已经为您的应用程序构建了正确的查询。只需使用
archiv.php
模板作为基础-创建一个副本,适当命名,以便在显示自定义帖子类型的存档时使用,然后相应地调整它以生成所需的输出。是的,我正在使用archive-projects.php模板进行存档。然而,由于我的www.website.co.uk/projects/并不是在寻找归档模板文件,它是在寻找page-template.php。通过这种方式,我还可以包含来自wp admin的页面内容。这有意义吗?为什么要从这里开始使用自己的查询?Wordpress的归档功能已经为您的应用程序构建了正确的查询。只需使用
archiv.php
模板作为基础-创建一个副本,适当命名,以便在显示自定义帖子类型的存档时使用,然后相应地调整它以生成所需的输出。是的,我正在使用archive-projects.php模板进行存档。然而,由于我的www.website.co.uk/projects/并不是在寻找归档模板文件,它是在寻找page-template.php。通过这种方式,我还可以包含来自wp admin的页面内容。这有意义吗?谢谢@Phill。这是伟大的工作,唯一的元素我缺少的是实际的链接到上一页和下一页。我可以把我的例子放在页面顶部吗?谢谢@Phill。这是伟大的工作,唯一的元素我缺少的是实际的链接到上一页和下一页。我可以把我的例子放在这一页的顶部吗?