这是因为您直接从插件文件夹中调用PHP文件。这不好有两个原因,第一个原因是有些人阻止直接访问wp-content
文件夹第二,你需要包括wp-load.php
访问WordPress API。
而不是链接到…
site_url().""."/wp-content/plugins/Printer-Friendly-WP/print.php?id=page_id="."". get_the_ID()`
…这是一个直接链接,很容易断开,只需向当前post permalink添加一个查询参数…
add_query_arg( \'print-page\', true, get_permalink() )
…然后检查URL是否包含
print-page
加载模板之前的查询参数:
function load_printed_page() {
if ( ! get_query_arg( \'print-page\' ) || ! $postid = get_the_ID() )
return;
query_posts(\'p=\'.$postid)
if (have_posts()) :
while (have_posts()) : the_post(); ?>
...
endwhile; endif;
}
add_action( \'template_redirect\', \'load_printed_page\' );
此外,您应该使用
WP_Query
或
get_posts()
而不是
query_posts