当前位置:K88软件开发文章中心编程语言PHPPHP01 → 文章内容

WordPress4.4的一些变更的修改

减小字体 增大字体 作者:佚名  来源:网上搜集  发布时间:2019-1-4 8:23:06

-->

人是朝前走的,软件也是。

这次Wordpress 4.4再度更新了不少东西,但很多东西对我们来说完全无用,或没有必要。

当然还有一些使用上的问题,也是令人哭笑不得。

很多人发QQ给我,问及WordPress 4.4的几个问题,该如何解决。

想想还是把代码放上来,顺带简单描述一下问题。

AJAX评论翻页后,页码导航消失。

这个问题,主要是超出WP主循环后,得不到评论总页数为多少所致。

找到你的AJAX加载评论页面的PHP函数,找到类似代码:

paginate_comments_links(‘current=’ . $pageid . $baseLink . ‘&prev_text=上一页&next_text=下一页’);

修改为

$totalPage = ‘&total=’.get_comment_pages_count($comments);
paginate_comments_links(‘current=’ . $pageid . $totalPage . $baseLink . ‘&prev_text=上一页&next_text=下一页’);

如此便解决了。

升级到新版本后,楼层号出错,统计的数量也不对。

这个问题,其实应该说是两个问题才对。

对于楼层号出错的,主要是因为$in_comment_loop的判断有问题,新版本使用wp_list_comments函数后,传递的$in_comment_loop都是空,我们需要将评论回调函数中的判断修改一下即可。大概在评论回调函数找到类似代码如下:

$page = ( !empty($in_comment_loop) ) ? get_query_var(‘cpage’) : get_page_of_comment( $comment->comment_ID, $args );

修改为

$page = ( get_query_var(‘cpage’) ) ? get_query_var(‘cpage’) : get_page_of_comment( $comment->comment_ID, $args );

即可,评论回调函数的名称,可以通过找到你使用的wp_list_comments函数中的callback参数看到。如:

wp_list_comments(‘type=comment&callback=lopercomment&max_depth=10000’);

那么必有lopercomment这个评论回调函数。

当然楼层号还出错,那就只能再检查一下回调函数,看哪里错了。各家写法不一,无法一一列举。

对于统计数量不对,其原因主要是WP改变了统计方式,以前是输出全部评论数,现在只输出了设置规定的数量(仪表盘=>设置=>讨论)。

而我们大多数代码偷了个懒,只是单纯的count评论循环的评论数,当WP改变方式后,就错误了。

因为各家代码不同,写法不同,而且可能主题需要修改多个文件,我就大概讲下,找到类似于:

count($comments);

或者

count($comments_by_type[‘comment’]);

等一些计数方法,将其改为

get_comments(array(‘status’ => ‘approve’, ‘post_id’=> $post->ID, ‘count’ => true));

当然,你可以用

get_comments_number($post->ID);

但是都要清除一些其他计数。一般主题都有带。

如果你想统计Traceback或Pingback的数量,不建议使用:

count($comments_by_type[‘pings’]);

而是用

get_comments(array(‘status’ => ‘approve’, ‘post_id’=> $post->ID, ‘type’=> ‘pings’, ‘count’ => true));

来获得计数。

说句实在话,更喜欢通过sql来得到计数。方便。或许回头应该整合下,写个函数。

图片已经在设置做了不裁剪,但新版本,还是会自动生成。

这个是因为WP新版本,添加了图片自适应(响应式),以兼容各种设备。

如果是跟我一样没做自适应的,就没必要去特意裁剪图片去减小图片大小,浪费。通过:

add_filter( ‘max_srcset_image_width’, create_function( ”, ‘return 1;’ ) );

可以禁用这一特性。

那些已经做了响应式主题,可以考虑使用这一特性,毕竟在手机端,会自动裁剪为合适大小,以减小图片大小,加快加载,减少流量。当然,实际用起来怎么样,我也不知道。

新版本加载了几个头和js

新版本可以自动识别所有带oEmbed(URL)特性的,可以在文章内嵌入其他WP网站。具体体现比如,你在编辑器写了对方博客的链接,如果其博客有声明支持oEmbed(URL),那么会自动转换成带样式的链接(有标题、摘要、评论数、分享按钮)。

这一特性怎么说呢,基本用不上。

禁用这一特性可以使用插件Disable Embeds,他会禁用掉js的加载及自动转换。

至于wp-json Link这个头,是给REST API用的,通过:

remove_action( ‘wp_head’, ‘rest_output_link_wp_head’ );

来去掉。如果实在是不想用REST API,还可以通过:

add_filter(‘rest_enabled’, ‘_return_false’);

add_filter(‘rest_jsonp_enabled’, ‘_return_false’);

remove_action(‘template_redirect’, ‘rest_output_link_header’);

来禁用。

新版本,发表文章后,图片没有灯箱效果

新版本,确实在默认配置,去掉了自动链接到附件这一特性(新版本,“链接到”的默认值是无),这使得附件链接不会自动链接到媒体文件。也导致灯箱判断不到a标签(只有img标签),而无法工作。

通过添加:

update_option(‘image_default_link_type’, ‘file’ );

可以解决,只要执行一次就好。用完就删掉这段代码。

偷懒的话,你可以访问http://你的博客地址/wp-admin/options.php 进入全部设置,找到image_default_link_type这一项,设置为file,记得保存设置。可以修改的值为none、file、post、custom,分别代表为无、媒体文件、文章页面、自定义。

其他问题,暂时没人问,我也没发现。

可以提,但尽量自行解决。

祝新年快乐。

该文章由WP-AutoPost插件自动采集发布

原文地址:http://www.59iwp.com/1085.html


WordPress4.4的一些变更的修改