天兴工作室

主题演示站

zblog升级1.7报错“Invalid argument supplied for foreach”或者“unserialize(): Error at offset”的解决办法

zblog在2021-04-10发布了1.7正式版本(https://blog.zblogcn.com/2021/04/10/122/),没想到有很多用户在第一时间升级后各种报错,论坛一片哀嚎:

2.png

大部分的报错提示是:”Invalid argument supplied for foreach“也有提示”unserialize(): Error at offset“的,本文来分享下这个bug的原因和解决办法。

BUG原因:

zblog1.7版本改造了system的config表,这个表里面存放的是程序的核心内容,例如域名、语言版本、网站名称等等。由于内容太多都放在一个字段里面调用不太方便。zblog1.7版本就把这个字段给强行分开了,为了兼容老用户肯定要对老用户的数据进行处理。

问题就出在这个老用户数据处理上面了,某个序列化数据的函数出了问题导致了这个BUG的产生。

BUG解决办法:

在升级1.7出现了上述两个报错的用户可以直接下载最新的“zblog1.7 2915”资源包,找到“zb_system/function/lib/config.php”文件替换自己网站的这个文件即可解决问题。

本站也上传了一个“config.php”文件,直接点击下载替换即可。

wordpress面包屑导航怎么写?wordpress面包屑导航代码

面包屑导航的作用是告诉网站的访问者他们目前在网站中的位置以及如何返回,是一个重要的功能。那么wordpress面包屑导航怎么写?本文就来分享下实现wordpress面包屑导航的代码。

首先在你正在使用的wordpress主题的“functions.php”文件里粘贴如下函数代码:

function tx_breadcrumbs(){
    if (!is_home()) {
        echo '<a href="' . get_settings('home') . '" title="回到首页">首页</a>';
        if (is_category()) {
            $cat_ID = get_query_var('cat');
            echo " > " . get_category_parents($cat_ID, TRUE, " > ");
        } elseif (is_single()) {
            $category = get_the_category();
            $category_id = $category[0]->term_id;
            echo ' >   ' . get_category_parents($category_id, TRUE, " > ");
            echo the_title();
        } else {
            echo " >  ";
            echo wp_title('', 0);
        }
    }
}

然后在需要引用的地方写上“<?php echo tx_breadcrumbs(); ?>”即可显示。


此wordpress面包屑导航显示效果如下图:

分类页:

内容页:

wordpress页面调用指定模板的方法

wordpress页面是可以调用指定的模板文件的,默认的wordpress页面模板是page.php。另外默认的新建页面界面里是没有选择模板功能的,这就会让人误以为wordpress是不能选择页面模板的。

然而是可以的,具体步骤如下:

1、将page.php文件复制一份重新命名,举个栗子重命名为“newpage.php”;

2、打开“newpage.php”文件,在顶部粘贴如下代码:

/**
 * Template Name:新增的自定义页面模板
 */

具体如下图:

1.png


3、然后去后台新建页面,就能看到如下界面选择对应模板了:

2.png

wordpress分类调用标签函数大全

本文记录下wordpress分类调用的标签和函数:

调用wordpress全部分类函数:

$args = array(
    'type'  => 'post',
    'child_of' => 0,
    'parent'  => '',
    'orderby'  => 'name',
    'order' => 'ASC',
    'hide_empty'  => 1,
    'hierarchical' => 1,
    'exclude' => '',
    'include' => '',
    'number'  => '',
    'taxonomy' => 'category',
    'pad_counts'  => false 
);
get_categories($args);

函数参数说明:

type(字符) post

child_of(整数)仅显示标注了编号的分类的子类。该参数无默认值。使用该参数时应将hide_empty参数设为false

parent(整数)只显示某个父级分类以及下面的子分类(注:子分类只显示一个层级)。

orderby(字符)将分类按字母顺序或独有分类编号进行排序。默认为按分类 编号排序包括ID(默认)和Name

order(字符)为类别排序(升序或降序)。默认升序。可能的值包括asc(默认)和desc

hide_empty(布尔值)触发显示没有文章的分类。默认值为true(隐藏空类别)。有效的值包括:1(true)和0(false)。

hierarchical(布尔值)将子类作为内部列表项目(父列表项下)的层级关系。默认为true(显示父列表项下的子类)。有效值包括1 (true)和0(false)

exclude(字符)除去分类列表中一个或多个分类,多个可以用逗号分开,用分类ID号表示。

include(字符)只包含指定分类ID编号的分类。多个可以用逗号分开,用分类ID号表示。

pad_counts(布尔值)通过子类中的项来计算链接或文章。有效值包括1(true)和0(false),0为默认。

number(字符)将要返回的类别数量。

taxonomy(字符))返回一个分类法,这个是wordpress3.0版本后新添加的一个参数。返回的值包括category(默认)和taxonomy(一些新定义的分类名称)。


通过分类id获取分类名称:“get_cat_name(分类ID)”;

通过分类id获取分类链接:“get_category_link(分类ID)”;

通过分类名称获取分类ID:“get_cat_ID(分类名称)”;


还有一个“get_category()”函数,可以通过分类id返回这个分类的全部对象。用法如下:

$cateobj = get_category(分类id);
分类id:$cateobj->term_id;
分类名称:$cateobj->name;
分类别名:$cateobj->slug;
分类组:$cateobj->term_group;
分类id:$cateobj->term_taxonomy_id;
分类type:$cateobj->taxonomy;
分类描述:$cateobj->description;
分类所属父分类:$cateobj->parent;
分类文章数量:$cateobj->count;
分类过滤:$cateobj->filter;
分类id:$cateobj->cat_ID;
分类文章数量:$cateobj->category_count;
分类描述:$cateobj->category_description;
分类名称:$cateobj->cat_name;
分类别名:$cateobj->category_nicename;
分类所属父分类:$cateobj->category_parent;

调用分类自定义字段,例如你的主题在分类里面增加了自定义字段,自定义字段一般是存储在“option”表里面的,所以可以直接用“get_option()”函数获取即可,调用代码如下:

get_option('cat-字段名-分类id');

以上就是wordpress分类调用的一些标签和函数了。

wordpress调用今日发布文章数量和总文章数量的方法

今天在做一个wordpress模板的时候需要调用今日发布的文章数量和总发布的文章数量,一番查询解决后记录下方法以免忘记。

调用wordpress网站发布的文章总数量有一个现成的函数“wp_count_posts()”,函数的返回值是一个对象,对象里面有以下值可以调用:

object(stdClass)#296 (8) {
//已发布文章的总数
 ["publish"]=>string(1) "5"
//定时发布文章的总数
 ["future"]=>int(0)
//草稿文章的总数
 ["draft"]=>int(0)
//正在编辑文章的总数
 ["pending"]=>int(0)
//隐私文章的总数
 ["private"]=>int(0)
//垃圾箱文章的总数
 ["trash"]=>int(0)
//自动草稿文章的总数
 ["auto-draft"]=>int(0)
//继承的文章总数??
 ["inherit"]=>int(0)
}

使用方法:

//获取文章数量
$postcount = wp_count_posts();
//输出文章总数
echo $postcount->publish;

调用wordpress网站今日发布文章总数需要自行写一个函数查询数据库实现,方法如下:

在主题的”functions.php“文件里面复制粘贴如下函数:

/* 调用今日更新文章数量 */
function txcstx_get_posts_today($post_type = 'post')
{
    global $wpdb;
    $numposts = $wpdb->get_var(
        $wpdb->prepare(
            "SELECT COUNT(ID) " .
                "FROM {$wpdb->posts} " .
                "WHERE post_status='publish' " .
                "AND post_type= %s " .
                "AND DATE_FORMAT(post_date, '%Y-%m-%d') = %s",
            $post_type,
            date('Y-m-d', time())
        )
    );
    return $numposts;
}

然后在需要显示的地方直接调用以下代码即可:

<?php echo txcstx_get_posts_today(); ?>

以上就是wordpress调用文章总数和今日发布文章总数的方法了,如果你还有其他更好的实现方式欢迎评论区域分享。

天兴工作室:zblog在线表单插件使用视频教程

zblog在线表单插件使用视频教程重点文字摘要:

1、插件生成的表单有四种显示方式;

2、弹出表单要绑定class为“txformejectobj”的元素,元素不管用啥标签都行;

3、有动手能力的可以在主题文件里面插入“{module:txform}”直接调用表单;

4、表单每个选项都可以单独设置是否显示、名称、显示样式和是否必填;

ps:后续插件会加入直接对应页面调用方式。


插件购买地址:http://demo.txcstx.cn/post/1380.html

wordpress在国内无法更新升级的解决办法

wordpress官网去年在国内大半年的时间打开都是报429错误,我想着就wordpress官方这个鸟态度,直接跟Android一样弄个国内版的安卓出来好啦。反正是官方先不做人的。

结果发现还真有人这么干了,真特么漂亮。

昨天发现了一个叫“wp中国本地化社区”的网站,他们开发了一个“WP-China-Yes插件”,安装后可以直接在后台更新wordpress程序、主题和插件了,妈个鸡这么基础的功能还要通过插件实现,wordpress官方对国内这么大数量的用户鸟都不鸟这份气度是让人佩服的!


WP-China-Yes插件插件官网:https://wp-china.org/

插件直接下载地址:https://a1.wp-china-yes.net/apps/wp-china-yes.zip


最后还是一些吐槽,对wp官方真是吐不完的槽,一群白皮傻X。

由于wp的一些资源服务器都是放在国外的,所以国内wp用户用起来就特别卡和慢。用之前还得先查老半天的教程设置。结果越来越过分,官网直接不能访问长达大半年时间都没人管,发个声明就告诉国内用户“我知道这个情况了,但是不是我造成的,而且我不管!”,牛逼牛逼。

还有“WP-China-Yes插件”本来也是可以直接在wp官方应用市场安装的,结果去年4月份被官方下架了,理由是官方不允许从其他来源安装wordpress程序及插件主题。问题是你官方倒是给我一个可以正常使用的渠道啊,煞笔一群。

通过这种事情还是看得出来,各种区域还是得国人自己慢慢开发,等白皮老爷来迁就我们代价有点大。

最后,wordpress用户实在太多了,真香!赶紧去多写几款wordpress主题去......

zblogphp1.7版本正式上线,附zblogphp1.7升级指南和注意事项

zblogphp1.7版本于2021年2月8日正式上线了。官方更新说明地址:https://blog.zblogcn.com/2021/02/08/117/

11.jpg

个人觉得1.7这个大版本最重要是是增加了官方api,这也意味着可以直接用vue这类前后端分离的框架写zblog主题了。zblog这回总算是跟上了时代。

另外值得说的是增加了程序自带的缩略图功能和程序自带的字体图标库,手机端后台依然是没有的...


zblogphp1.7升级指南:

更新到最新的zblogphp1.7版本步骤:打开你的网站后台--应用中心--系统更新与校验--点击升级新版程序即可。

PS:确定要升级的建议往下看看。


zblogphp1.7升级注意事项:

依然强烈不推荐将你主力站升级到zblogphp1.7版本。这种大版本更新虽然经过了开发者的内测,但是依然会存在一些未知的bug。还有重要的一点是你正在使用的主题和插件如果不支持最新版程序,就会导致各种错误发生。

所以建议大家稍等一段时间后再去升级,起码要等到你使用的主题和插件适配了最新的程序之后!

zblog判断插件是否安装或者启用的代码介绍

最近在写zblog主题的时候需要用到判断一个依赖的zblog插件是否启用,zblog本身就有内置的判断函数,本文就来介绍下怎么来判断一个zblog插件是否安装或者启用。 

一个插件有三种状态:未安装;已安装未启用;已安装已启用。

zblog判断插件是否安装的内置函数是:

$zbp->LoadApp('plugin', '插件ID')->isloaded

函数返回值为布尔值,可以直接用if判断,已经安装返回true值,未安装就返回false值。


还有一种判断插件是否安装的方法是通过获取插件内的文件路径,然后通过php自带的“file_exists”函数判断文件是否存在就行。代码如下:

$path = $zbp->path .'zb_users/plugin/插件ID/文件名.php';  //获取文件路径
if(file_exists($path){
    echo '已安装';
}else{
    echo '没有安装';
}

推荐使用第一种zblog内置函数的方法判断,不建议使用第二种判断文件路径方式。


然后就是判断插件安装后是否启用,这个zblog也有内置的函数:

$zbp->CheckPlugin('插件id')

同样的这个函数的返回值为布尔值,可以直接用if判断,插件已经启用返回true值,未启用就返回false值。


PS:zblog的主题也可以用同样的方法来判断,函数里面的“plugin”改成“theme”即可,但是一般是主题依赖插件,很少有插件依赖主题的。所以这个用的少。

translate3d和z-index冲突导致z-inde值无效的解决办法

今天碰到了一个css3效果在pc端和安卓端都正常,但是ios端无法正常显示的问题。经过排查后发现是css3的transform动画效果里面的translate3d和z-index冲突导致的。

1.png

z-index是设置元素显示层级的也相当于是个Z轴,translate3d的Z轴也是表示层级的。如果两个参数都设置了不等于0的数值,那么会以Z轴值为准。这就导致了z-index值的失效。

解决办法就是留一个就行了。个人建议如果那个translate3d效果没什么特别的话直接用translate控制X轴和Y轴就行了,Z轴的用处我暂时还没发现...

<< < 1 2 3 4 5 6 7 8 9 10 > >>
«    2026年4月    »
12345
6789101112
13141516171819
20212223242526
27282930
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
文章归档
网站收藏
友情链接

Powered By Z-BlogPHP 1.7.5

天兴工作室主题演示站点,如遇到问题请联系我们的在线qq:207649916咨询