在我的搜索页面上,我已使用以下代码添加了媒体中的所有文件:
function attachment_search( $query ) {
$args = array(
\'public\' => true,
\'_builtin\' => false,
);
$output = \'names\';
$operator = \'and\';
$cpts = get_post_types( $args, $output, $operator );
$cpts[] = \'attachment\';
$cpts[] = \'post\';
if ( $query->is_search ) {
$query->set( \'post_type\', $cpts );
$query->set( \'post_status\', array( \'publish\', \'inherit\' ) );
}
return $query;
}
add_filter( \'pre_get_posts\', \'attachment_search\' );
在媒体中,我添加了一个示例。pdf文件。
示例正在显示,但显示为帖子。我只想添加PDF中的下载链接。但我该怎么做呢?wp_get_attachment_url(get_the_ID()) 没有工作,因为帖子(=PDF)没有附件文件?
PS:这是我的内容搜索。php
<?php
$post_type = ucfirst(get_post_type());
$download = "";
//if(get_post_type() == "attachment"){
$dowload = wp_get_attachment_url(get_the_ID());
//}
?>
<article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
<header class="entry-header">
<h2 class="entry-title m-0">
<a href="<?=esc_url( get_permalink() ); ?>" rel="bookmark">
<?=the_title();?> <?= "(".$post_type.")"; ?>
" <?php echo $download;?> " <?php the_ID(); ?>
</a>
</h2>
</header><!-- .entry-header -->
</article><!-- #post-<?php the_ID(); ?> -->
wp\\u get\\u attachment\\u url(get\\u The\\u ID())仅针对此文件的任何文档返回“”。。。图像或PDF。
SO网友:Morgan Tartreau
不知道为什么,但这样做有效。。。在我的搜索中。php,没问题。在内容搜索中。php,无结果。
while (have_posts()) :
the_post();
$attachment = wp_get_attachment_url(get_the_ID());
set_query_var(\'document\', $attachment);
get_template_part(\'template-parts/content\', \'search\');
endwhile;
编辑
如前所述,Dave Romsey,do
add_action( \'pre_get_posts\', \'attachment_search\' );
而不是
add_filter( \'pre_get_posts\', \'attachment_search\' );