使用 jQuery.load() 查询自定义 post 类型

Query custom post type with jQuery.load()

我在网站 see here 上工作,我创建了一个名为 "projects" 的自定义 post 类型。
当页面最初加载时,一切正常,所有 post 数据都已加载。但是当我使用 $.load() 从外部文件加载相同的代码时,什么也不会显示。它似乎只是自定义 post 类型的问题,如果我将 "projects" 替换为 "post" (默认类型), "Hello World" post 将被重新查询,但不是 "projects"。

如何查询自定义 post 类型两次?这是我的代码:

<?php 
 $args = array(
  'post_type' => 'projects',
  'tax_query' => array(
    'taxonomy' => 'nonfiction'
   )
  );


 $query = new WP_Query( $args );

 if ( $query->have_posts() ):
  while ( $query->have_posts() ):
  $query->the_post(); 
  $meta_data = array( 
   'author' => get_post_meta($post->ID, 'Author', true),
   'publisher' => get_post_meta($post->ID, 'Publisher', true),
   'year' => get_post_meta($post->ID, 'Year', true),
   'role'  => get_post_meta($post->ID, 'Role', true),
   'location' => get_post_meta($post->ID, 'Location', true)
   );

?>

 <li>
  <?php 
   echo $meta_data['author']; 
   echo ". ";
   the_title(); 
   echo " (" . $meta_data['location'] . ": " . $meta_data['publisher'] . ", " . $meta_data['year'] . "). " . $meta_data['role'];
   
  ?>
 </li>

<?php 
  endwhile;
 endif;
?>

$(document).ready(function(){
$('.tab').click(function(){
   $('.publications').load('http://greyediting201.staging.wpengine.com/wp-content/themes/pp_boot/_nonfiction.php', null, console.log('finished'));
  });
});

我认为 .load 只能在相对 URL 中工作,否则任何跨域问题

是的.load()函数中不使用服务器url而是相对路径如./js的路径folder/jsfile.js。希望对你有用

Just check the link here for jquery docs