Typecho 常用代码合集
Typecho 相比 WordPress,其所提供的接口较少,所以有些地方需要留心。遇到报错情况可以先在网上搜索相关资料,或者是询问 AI ,提出疑难。 首页文章无限加载文章 在 functions.php 中加入一段判断 ajax 请求的方法: function is_ajax() { if (isset($_SERVER['HTTP_X_REQUESTED_WITH'])) { if ('xmlhttprequest' == strtolower($_SERVER['HTTP_X_REQUESTED_WITH'])) { return true; } } return false; } 在首页模板 index.php 中加入判断,if (is_ajax ()): 则不输出 header footer 等信息。 最后一步,在模板公共 js 文件中加入以下代码: var page = 1; var $body = (window.opera) ? (document.compatMode == "CSS1Compat" ? $('html') : $('body')) : $('html,body'); $('#blog_load_more').click(function(event) { $(this).hide(); $('#spinner').show(); $.ajax({ type: 'get', url: SITE.default_url + '/page/' + parseInt(page + 1), success: function(data, textStatus, XMLHttpRequest) { page++; $('.w-blog-list').append(data); $('#spinner').hide(); $('#blog_load_more').show(); }, error: function(MLHttpRequest, textStatus, errorThrown) { $('#spinner').hide(); $.jGrowl('Network Error'); } }); }); 其中 #blog_load_more 为需要绑定的加载更多按钮,#spinner 为加载过程中的动画,.w-blog-list 为首页文章列表容器。 由于 Typecho 并没有 Ajax 钩子函数,所以需要在 functions.php 中加入以下代码: ...