Zaloguj sie

Notatka na marginesie

Czas:2023/12/09

Migracja i aktualizacja WordPressa: rozwiązywanie problemów takich jak białe strony, 404, pseudostatyczne, awaria instalacji wtyczki, awaria aktualizacji wtyczki i niedostępność itp.

W ciągu ostatnich dwóch dni przeprowadziłem migrację mojego bloga i zaktualizowałem go do najnowszej wersji WordPressa 6.4.2. W trakcie tego procesu pojawiło się wiele problemów, które zostały rozwiązane jeden po drugim.

Nagraj to.

białe strony

Odinstalowałem kilka wtyczek i odinstalowałem opracowany przeze mnie motyw: themoon. To rozwiązało problem.

404 i pseudostatyczny

Nowy serwer to Nginx. Należy dodać do konfiguracji:

lokalizacja / { try_files $uri $uri/ /index.php?$args;

Instalacja wtyczki nie powiodła się i aktualizacja również się nie powiodła

1. Ustaw uprawnienia katalogu wtyczek na 777 i przy okazji ustaw uprawnienia katalogu motywów na 777.

2. Włącz funkcje PHP w PHP.ini: chmod

Bez włączenia tej funkcji WordPress nie będzie mógł instalować ani aktualizować wtyczek.

Po nieudanej aktualizacji wtyczki cała witryna stała się niedostępna.

Wskazówka: „Proszę poczekać minutę…”

Właściwie zawsze tak było.

Wystarczy, że zalogujesz się na serwer przez FTP, odszukasz plik .maintenance w katalogu głównym, usuniesz go i gotowe.

tagi:
Czas:2023/11/06

Nagraj to, wordpress, uzyskaj identyfikator strony

Zawsze używałem

globalny $post; $id=$post->ID;

Właśnie dzisiaj dowiedziałem się, że jest problem.

Jeśli dodasz krótki kod do strony, a krótki kod wygeneruje listę (np. listę artykułów w określonej kategorii), wówczas ta metoda nie będzie w stanie uzyskać identyfikatora strony.

Oznacza to, że jeśli na stronie znajduje się pętla, powyższa metoda nie może uzyskać identyfikatora strony.

Wymień kilka metod uzyskania identyfikatora strony:

1.globalny

Wpływ na krążenie.

globalny $post; $id=$post->ID;

2,pobierz_the_ID()

Wpływ na krążenie.

$postid = get_the_ID(); echo $postid;

 

3.get_queried_object_id()

Nie ma wpływu na krążenie. polecić.

$current_id = get_queried_object_id(); echo $current_id;

4.get_queried_object()

Nie ma wpływu na krążenie.

$object = get_queried_object(); $id = $object -> Identyfikator;
tagi:
Czas:2023/09/02

uformuj dzisiaj iterację silnika

Dzisiejsza iteracja silnika formularzy:

Obsługa wielu formularzy na jednej stronie;

Obsługuje aplikację w silniku veiws, dzięki czemu można dodawać różne akcje do listy renderowanej przez silnik veiws.

Warstwa widoku i warstwa kontrolna silnika formularza są oddzielone.

Dodaj pole rozwijanego przycisku wyboru.

 

Ponieważ silnik formularzy i silnik widoków zostały oddzielone od platformy o niskim kodzie i przeprowadzono pewną rekonstrukcję, w tej iteracji ich możliwości całkowicie wykraczają poza poprzednią wersję.

Czas:2023/08/31

记录一下,wordpress中设置cookie比较特别

被这个小问题卡了一天。

wordpress中设置cookie比较特别。要写在theme的functions文件中,并加载到init钩子上。

function custom_set_cookie() {
    
    setcookie( 'key', 'value', time() + 3600 * 24, COOKIEPATH, COOKIE_DOMAIN );

}
add_action( 'init', 'custom_set_cookie' );
tagi:
Czas:2023/08/01

flutter package依赖冲突的问题(Because xx depends on)

最简单的解决方法,就是在冲突的package后边不加版本号,而是加上“any”,这样flutter会自动匹配合适的包依赖的版本。

dart_code_metrics: any

 

tagi:
Czas:2023/07/29

the_posts_pagination() —— zasada stronicowania w wordpress


Nigdy nie rozumiałem zasady stronicowania list WordPress. W końcu dzisiaj to zrozumiałem.

Lista i dane paginacji wordpress są zapisane w parametrze globalnym: $wp_query Dopóki żądane dane listy są umieszczone w tym parametrze, możesz użyć the_posts_pagination() lub get_the_posts_pagination() aby wyświetlić paginację po kliknięciu paginacji nie martw się, wordpress już to zrobił.

Kod:

globalne $wp_query; 

 $wp_query=nowe WP_Query($arg);

Następnie możesz użyć funkcji the_posts_pagination(), aby wyświetlić paginację pod tą listą.



tagi:
Czas:2023/07/26

AIGC:把百度的文心千帆大模型整合进wordpress,并对比GPT

# 把百度的文心千帆大模型整合进wordpress,并对比GPT

上周末,把百度的文心千帆大模型整合进了wordpress。
一、基本的过程:
1、先在百度申请体验文心千帆大模型,需要先认证。

2、通过后,开通一下大模型,因为百度的大模型使用是收费的,按token收费,需要你的账户中有余额才能开通。

3、然后,创建一个应用,这样就有了appid、api key和secret key

4、然后,再看文档,接相应的接口。
基本就是通过api key和secret key获得access token,然后再提交问题,获取答案。

二、关键代码
1、获取access token的关键代码

“`php
private function getAccessToken(){
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => “https://aip.baidubce.com/oauth/2.0/token?client_id=”.$this->client_id.”&client_secret=”.$this->client_secret.”&grant_type=client_credentials”,
CURLOPT_TIMEOUT => 30,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => ‘POST’,
CURLOPT_HTTPHEADER => array(
‘Content-Type: application/json’,
‘Accept: application/json’
),

));
$response = curl_exec($curl);
curl_close($curl);
$rtn = json_decode($response);
return $rtn->access_token;
}
“`

2、调用Ernie Bot大模型的关键代码

“`php
public function runErnieBot($message) {
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => “https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/completions?access_token={$this->getAccessToken()}”,
CURLOPT_TIMEOUT => 30,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => ‘POST’,
CURLOPT_POSTFIELDS =>$message,
CURLOPT_HTTPHEADER => array(
‘Content-Type: application/json’
),
));
$response = curl_exec($curl);
curl_close($curl);
return $response;
}
“`

3、调用Ernie Bot Turbo大模型的关键代码

“`php
public function runErnieBotTurbo($message) {
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => “https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/eb-instant?access_token={$this->getAccessToken()}”,
CURLOPT_TIMEOUT => 30,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => ‘POST’,
CURLOPT_POSTFIELDS =>$message,
CURLOPT_HTTPHEADER => array(
‘Content-Type: application/json’
),
));
$response = curl_exec($curl);
curl_close($curl);
return $response;
}
“`

这几天的测试,百度文心千帆大模型在中文方面的表现的确比GPT好多了。
GPT的中文水平,就是“说明文”的水平。
百度文心千帆大模型的中文水平,至少也比“说明文”好一些。

Czas:2023/07/17

会员订阅模块的迭代

 

 

对我自己做的平台型CMS,会员订阅这部分一直是“简单实现”。这个周末重新对这部分做了架构,并把核心部分开发完成。

一、方式

会员订阅,一般来说,主要包含:会员订阅计划及购买、会员权限控制、会员管理三个部分。

1、对于会员订阅计划及购买

准备基于已有的商城系统做一些扩展即可。

2、对于会员权限控制,

这个得特别说一下,不打算基于角色权限系统来做,而是单独做一个会员控制的系统。

基于角色权限系统,把会员做成一个角色系列,把每一种会员做成这个角色系列中的角色。听起来,似乎很合理。但是,这样的话,无论做起来还是用起来,都特别麻烦,尤其是业务比较多的时候,各种逻辑会很复杂,一不小心就会造成各种混乱。并且也不够灵活。

而且,实际上,很多优秀的系统的会员订阅部分,也都不会基于角色。而是基于“标记”或者基于订单来实现权限控制。包括wordpress的很多卖得很好的会员订阅类的插件都是这样来做的。

基于“用户标记”:

本质上,其实和角色系统原理一样。就是定义一些会员的“标记”,购买了与这个“标记”关联的会员订阅计划的用户会被“打上这个标记”,这样就能实现会员权限的控制。

基于订单:

购买会员订阅计划,形成订单,支付后,将到期时间写入订单。所以,就可以根据订单来判断用户是否是会员、是哪种会员,以及是否已过期。这样就可以对控制会员权限。

 

之前曾经做过基于订单的方式,这次打算基于”用户标记“。

基于订单并没有什么不好,只不过,我现在做的这个平台型CMS的订单系统支持的订单类型比较多,造成订单模型比较”庞大“,不打算再给它”增加体重“了,所以选择基于”用户标记“。

3、会员管理

基于现有的用户管理扩展,不打算单独做会员管理。

 

二、适用场景

1、基本场景

整个产品有一个或几个订阅计划,用户购买,享受会员服务。

全局定义会员标记,每一种会员标记至少包含name、slug、关联的订阅计划id,三个字段。

当用户购买了某个会员标记的订阅计划,此会员标记和到期时间就会被写入此用户的meta数据中。

2、平台/多租户场景

对于平台和做多租户SAAS,有一个很重要的场景:供应商自己提供的订阅计划。

在供应商的用户的meta数据中定义此供应商的会员标记,供应商的会员标记的key和全局会员标记的key不能相同。

当用户购买了此供应商的订阅计划后,相应的会员标记和到期日期就会被写入到购买用户的meta数据中。

这次的迭代只实现基本场景即可,但要能扩展到平台和多租户场景。

 

三、登录时判断会员是否到期

用户登录时判断是否到期,如果到期,更新meta数据中的会员标记为false、到期日期为false。

 

Czas:2023/07/12

iframe嵌入网页不显示的问题

嵌入的网页必须是https的url才能显示,http的url不显示。

tagi:
Czas:2023/06/28

tiktok和抖音用户行为对比

2019年做了一个出海的短视频社交APP。当时对tiktok和抖音用户行为做了一些对比分析。以下是当时的一些笔记。

1、关于短视频和直播

对于国内用户,短视频和直播都是用来做内容的,所以,短视频和直播都是内容形式。

对于海外用户,短视频和直播,首先是通讯方式,短视频首先是短信的概念,只不过发的是视频。直播,首先是打电话的概念,只不过可以同步视频画面,无论是一对一还是一对多。

这也是为什么海外会有很多基于短视频和直播通讯的社交APP,而国内,大多是制作短视频和为更好地做直播节目而服务的产品。

 

2、关于粉丝

对于国内用户来说,粉丝就是钱,关注量就是用来变现的关键数字。

对于海外用户来说,尤其对欧美用户来说(tiktok的用户群普遍年龄比较小),粉丝就是朋友,这是一个很值得炫耀的数字,tiktok上大量的年龄比较小的用户普遍以有很多朋友为傲。

3、关于直播和直播礼物

国内的直播都是做内容的。主要就是卖艺和卖商品。画面精美、各种诱惑、费尽心机。

海外的直播,包括tiktok,真的就是“通讯工具”。

首先,是直播总量上,和抖音没法比。

然后,最常见的就是一个女的和一群男的瞎聊天,画面?诱惑?那是啥?就是随便聊个天。这样的,送礼物,极少。

偶尔也有卖艺的,但其质量、人气等和国内的直播相去甚远。送礼物的情况,整体上也和国内的直播没法比。

 



prawa autorskie © www.lyustu.com wszelkie prawa zastrzeżone.
Temat: TheMoon V3.0 Autor:neo yang