获取自定义帖子而不是默认的 Wordpress 帖子

Posted

技术标签:

【中文标题】获取自定义帖子而不是默认的 Wordpress 帖子【英文标题】:Fetch custom post instead of default Wordpress posts 【发布时间】:2021-12-16 01:30:14 【问题描述】:

我正在使用一个插件,其中默认的 wordpress 帖子显示在“帖子”选项卡上,此代码正在获取帖子,我希望获取自定义帖子类型“属性”而不是默认的 wordpress 帖子。

loop-post.php

   <?php

if ( ! defined( 'ABSPATH' ) ) 
    exit; // Exit if accessed directly


$the_query = isset( $args['template_args']['the_query'] ) ? $args['template_args']['the_query'] : '';
$title = isset( $args['template_args']['title'] ) ? $args['template_args']['title'] : '';
?>
<h3><?php echo $title; ?></h3>
<div class="uwp-profile-item-block">
    <?php
    // The Loop
    if ($the_query && $the_query->have_posts()) 

        echo '<ul class="uwp-profile-item-ul">';
        while ($the_query->have_posts()) 
            $the_query->the_post();
            uwp_get_template('posts-post.php', $args);
        
        echo '</ul>';

        /* Restore original Post Data */
        wp_reset_postdata();
     else 
        // no posts found
        echo "<p>".sprintf( __( "No %s found.", 'userswp' ), $title )."</p>";
    
    do_action('uwp_profile_pagination', $the_query->max_num_pages);
    ?>
</div>

posts-post.php:

<?php

if ( ! defined( 'ABSPATH' ) ) 
    exit; // Exit if accessed directly

global $post;
$user = uwp_get_displayed_user();
?>
<li class="uwp-profile-item-li uwp-profile-item-clearfix">
    <div class="uwp_generic_thumb_wrap">
        <a class="uwp-profile-item-img" href="<?php echo esc_url_raw( get_the_permalink() ); ?>">
            <?php
            if ( has_post_thumbnail() ) 
                $thumb_url = get_the_post_thumbnail_url( get_the_ID(), array( 80, 80 ) );
             else 
                $thumb_url = uwp_get_default_thumb_uri();
            
            ?>
            <img class="uwp-profile-item-alignleft uwp-profile-item-thumb"
                 src="<?php echo esc_url_raw( $thumb_url ); ?>">
        </a>
    </div>

    <h3 class="uwp-profile-item-title">
        <a href="<?php echo esc_url_raw( get_the_permalink() ); ?>"><?php echo get_the_title(); ?></a>
    </h3>
    <time class="uwp-profile-item-time published" datetime="<?php echo get_the_time( 'c' ); ?>">
        <?php echo get_the_date(); ?>
    </time>
    <div class="uwp-profile-item-summary">
        <?php
        do_action( 'uwp_before_profile_summary', get_the_ID(), $post->post_author, $post->post_type );
        $excerpt = strip_shortcodes( wp_trim_words( get_the_excerpt(), 15, '...' ) );
        echo esc_attr( $excerpt );
        do_action( 'uwp_after_profile_summary', get_the_ID(), $post->post_author, $post->post_type );
        ?>
    </div>
</li>

任何人都可以帮助仅获取自定义帖子类型“属性”帖子而不是默认的 wordpress 帖子吗? 提前致谢。

【问题讨论】:

【参考方案1】:

您可以定义new WP_Query 并将'post_type' =&gt; 'properties' 作为参数传递。试试下面的代码。

<?php

if ( ! defined( 'ABSPATH' ) ) 
    exit; // Exit if accessed directly


$args = array(
    'post_type' => 'properties'
);

$properties = new WP_Query( $args );
$title = isset( $args['template_args']['title'] ) ? $args['template_args']['title'] : '';
?>
<h3><?php echo $title; ?></h3>
<div class="uwp-profile-item-block">
    <?php
    // The Loop
    if ($properties->have_posts()) 

        echo '<ul class="uwp-profile-item-ul">';
        while ($properties->have_posts()) 
            $properties->the_post();
            uwp_get_template('posts-post.php', $args);
        
        echo '</ul>';

        /* Restore original Post Data */
        wp_reset_postdata();
     else 
        // no posts found
        echo "<p>".sprintf( __( "No %s found.", 'userswp' ), $title )."</p>";
    
    do_action('uwp_profile_pagination', $properties->max_num_pages);
    ?>
</div>

【讨论】:

这个答案对我来说很有效。【参考方案2】:

获取自定义帖子您可以使用如下所示,根据您的要求更新参数:

$args = array(  
        'post_type' => 'services',
        'post_status' => 'publish',
        'posts_per_page' => 8, 
        'orderby’ => 'title', 
        'order’ => 'ASC', 
    );

    $loop = new WP_Query( $args ); 
        
    while ( $loop->have_posts() ) : $loop->the_post(); 
        print the_title(); 
        the_excerpt(); 
    endwhile;

    wp_reset_postdata(); 

【讨论】:

以上是关于获取自定义帖子而不是默认的 Wordpress 帖子的主要内容,如果未能解决你的问题,请参考以下文章

Wordpress 获取不在自定义分类术语中的帖子

自定义帖子类型等效于 Wordpress 中的“帖子页面”设置

带有 ACF 日期字段的 WordPress 自定义帖子类型日历

WordPress > 从自定义帖子类型获取自定义分类

Wordpress 如何仅获取自定义帖子类型的父帖子

WordPress:在自定义帖子类型中获取模块名称的帖子 slug