获取自定义帖子而不是默认的 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' => '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 中的“帖子页面”设置