Copywriter, webmaster, product manager, architect, independent developer.
The simplest solution is to add "any" instead of the version number after the conflicting package, so that Flutter will automatically match the appropriate version of the package dependency.
dart_code_metrics: any
I have never understood the paging principle of wordpress lists. I finally figured it out today.
The list and pagination data of wordpress are written in the global parameter: $wp_query. As long as the queried list data is put into this parameter, you can use the_posts_pagination() or get_the_posts_pagination() to display the pagination. As for the page that appears after clicking the pagination, Don't worry, wordpress has already done it.
Code:
global $wp_query;
$wp_query=new WP_Query($arg);
Then, you can use the_posts_pagination() to display pagination under this list.
# integrates Baidu’s Wenxin Qianfan large model into WordPress and compares it with GPT
Last weekend, Baidu’s Wenxin Qianfan model was integrated into WordPress.
1. Basic process:
1. First apply to experience the Wenxin Qianfan large model on Baidu, which requires certification first.
2. After passing, activate the large model, because Baidu's large model is charged for use and is charged by token. You need to have a balance in your account to activate it.
3. Then, create an application so that it has appid, api key and secret key
4. Then, read the documentation and connect the corresponding interface.
Basically, you get the access token through the api key and secret key, and then submit the question and get the answer.
2. Key code
1. Obtain the key code of the 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. Call the key code of Ernie Bot large model
"`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. Call the key code of Ernie Bot Turbo large model
"`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;
}
“`
In the past few days of testing, the performance of Baidu Wenxin Qianfan's large model in Chinese is indeed much better than GPT.
The Chinese level of GPT is the level of "explanatory text".
The Chinese level of Baidu Wenxin Qianfan Large Model is at least better than the "explanatory text".
For the platform CMS I built myself, the membership subscription part has always been "simple to implement". This weekend I restructured this part and developed the core part.
1. Method
Generally speaking, membership subscription mainly includes three parts: membership subscription plan and purchase, member permission control, and member management.
1. For membership subscription plans and purchases
Just prepare to make some extensions based on the existing mall system.
2. For member permission control,
This needs to be mentioned in particular. We are not planning to do it based on a role permission system, but a separate member-controlled system.
Based on the role authority system, members are made into a role series, and each type of member is made into a role in this role series. It sounds reasonable. However, in this case, it is very troublesome to do or use, especially when there is a lot of business, the various logics will be very complicated, and all kinds of confusion will be caused if you are not careful. And it's not flexible enough.
Moreover, in fact, the membership subscription part of many excellent systems is not role-based. Instead, permission control is implemented based on "marks" or orders. Many well-selling membership subscription plug-ins, including WordPress, are done in this way.
Based on "user tags":
In essence, it is the same principle as the character system. It is to define some "marks" of members. Users who purchase the membership subscription plan associated with this "mark" will be "marked with this mark", so that the control of member permissions can be achieved.
Based on order:
Purchase a membership subscription plan and form an order. After payment, the expiration time will be written into the order. Therefore, you can judge based on the order whether the user is a member, what kind of member it is, and whether it has expired. This way you can control member permissions.
I have done an order-based method before, and this time I plan to use "user tags".
There is nothing wrong with being based on orders, but the order system of the platform CMS I am building now supports many order types, making the order model relatively "large". I don't plan to "add weight" to it anymore, so I chose Based on "user tags".
3. Member management
Based on the existing user management extension, we do not plan to do member management alone.
2. Applicable scenarios
1. Basic scenario
The entire product has one or several subscription plans, which users purchase and enjoy membership services.
Define membership tags globally. Each membership tag contains at least three fields: name, slug, and associated subscription plan id.
When a user purchases a subscription plan with a membership mark, the membership mark and expiration time will be written into the user's meta data.
2. Platform/multi-tenant scenario
For platforms and multi-tenant SAAS, there is a very important scenario: the subscription plan provided by the vendor itself.
Define the supplier's membership tag in the supplier's user's meta data. The key of the supplier's membership tag cannot be the same as the key of the global membership tag.
When a user purchases a subscription plan from this provider, the corresponding membership tag and expiration date will be written to the purchasing user's meta data.
This iteration only implements basic scenarios, but it must be able to be extended to platform and multi-tenant scenarios.
3. Determine whether the membership has expired when logging in
When the user logs in, it is judged whether it has expired. If it has expired, update the member mark in the meta data to false and the expiration date to false.
1. What do social products do? First of all, we need to know, what exactly do social products do? All social products are platform products. In other words, all […]
The embedded web page must be an https URL to be displayed, and an http URL is not displayed.
AIGC is so popular that everyone is discussing what to do. I summarized it, and the discussion focused on two points: 1. Upgrading and iterating or looking for the so-called "innovation [...]
For WordPress theme authors and plugin authors, translating their own themes and plugins cannot avoid po files and […]
Traffic is drying up. Social media is becoming increasingly difficult to use. In the past two years, I have found that many people have some misunderstandings about social media and self-media […]
Last year, I helped an international HR SaaS company to develop a solution. The core of this solution is two successful B-side SAAS platforms […]