我正在尝试使用一个旧插件http://wordpress.org/extend/plugins/wp-ecards/ (我不是插件作者)当我试图在网站上查看电子卡时,在php错误日志和一个空白屏幕中出现此错误:
Failed opening \'\' for inclusion (include_path=\'.:/usr/share/php:/usr/share/pear\')
in /home/public_html/demo/wp-content/plugins/wp-ecards/ft-wp-ecards.php on line 171
I don\'t know what is happening. Is this plugin trying to load the pear library? Any ideas?
第171行周围的函数如下(第171行标记为):
function init_wpecards_viewcard(){
global $wp_query;
if ( isset($wp_query->query_vars[\'ft_wpecards_view\']) ){
if ( $ft_wpecards_parentpost = ft_wpecards_get_post_id($wp_query->query_vars[\'card\']) ){
if ( ft_wpecards_get_post_type($wp_query->query_vars[\'card\']) == \'post\' ) {
query_posts("p=".$ft_wpecards_parentpost."&ft_wpecards_view=1&card=".$wp_query->query_vars[\'card\']);
include(get_single_template());
//exit;
}else{
query_posts("page_id=".$ft_wpecards_parentpost."&ft_wpecards_view=1&card=".$wp_query->query_vars[\'card\']);
include(get_page_template()); //LINE 171
//exit;
}
}else{
include(get_404_template());
}
exit;
}
//die(\'tr\');
}
add_action(\'template_redirect\',\'init_wpecards_viewcard\');
最合适的回答,由SO网友:Tom J Nowell 整理而成
使用get\\u template\\u part()是否更有意义?可能发生的情况是,没有404模板:
if ( \'\' != get_query_template( \'404\' ) )
include( get_query_template( \'404\' ) );
http://codex.wordpress.org/Function_Reference/get_query_template
这可能是因为pretty permalinks已关闭,或者因为找不到404页面模板。
get\\u page\\u模板也是如此:
您调用了query\\u posts,但之后没有调用wp\\u Reset\\u query必须在post循环中调用get\\u page\\u模板,但是找不到post循环如果您有ID,那么执行get_post_meta($ft_wpecards_parentpost,\'_wp_page_template\',true);
获取以主题文件夹url为前缀的页面模板文件名