关于dropshipping速卖通Aliexpress的替代

这篇文章是在blackhatworld看到的,挺好的分享,我就转载过来了,做了一些归纳和总结,原文链接在文章结尾。

Here other best AliExpress alternatives for dropshipping based on my knowledge which can ship the item fast and have good quality as your reference. 🙂

  1. Spocket: This company provides US and EU dropshipping suppliers. The product will be shipped from the US or EU, so you will not face a long shipping time, the quality product also great.
  2. Salehoo
  3. Printful & Printify: Print On Demand Manufactur base in the USA, EURO, JAP, and AUS. The company can fulfill the order fast with good quality. I myself using Printful and Printify to do Shopify Dropshipping POD by collaborating with an artist (Organic traffic). This allows me to ship good quality products fast from the US, EU, and AUS.
  4. eBay: We can approach several eBay sellers based in the USA as dropshipping suppliers by sending them a message and tell them that we’re interested in dropshipping from them.
  5. Etsy: There so many unique and craft products made in the USA that we can use to dropship. You can send messages to the sellers to ensure their quantity enough for you to dropship from them.
  6. Banggood USA: The product in Banggood is the same as AliExpress. The difference here the Bangood USA stored their product in a US warehouse for faster shipping
  7. US Brand (Wholesale): we can approach brand owners on their official site and apply as an authorized dealer (Wholesale Program) to promote their products through the dropshipping business model. One of them is thebabygiftbox.com and babybasket.com
  8. US Dropshipping Supplier Facebook group: Another alternative you can use to find US dropshipping suppliers by joining the US dropshipping supplier Facebook group. You can post something in the group to say that you’re looking for a supplier in a specific niche. The supplier will PM back to us with detailed information.
  9. CJ Dropshipping: Even though CJ dropshipping is a middle man like Oberlo, the company can provide a freight line shipping method through YunExpress or CJ packet for your dropshipping order as long as you sync your store with them. You can ship your packet from China faster using a special line which is considered more expensive than epacket.
  10. Sourcinbox: This sourcing agent can help you fulfill your order using a special line (freight line) such as Yun Express to ship the packet to the customer. You can use this company if you have consistent daily dropshipping orders. It works effectively if you have found your winning product and want to scale up.
继续阅读

不用插件给wordpress文章生成二维码

调用二维码的API接口可以直接给文章生成二维码,不需要安装插件,很方便。

1、Google API接口

<img src="https://chart.googleapis.com/chart?cht=qr&chs=200x200&choe=UTF-8&chld=L|1&chl=<?php the_permalink(); ?>" width="200" height="200" alt="<?php the_title(); ?>" />

2、qrserver API接口

<img src="http://api.qrserver.com/v1/create-qr-code/?size=200x200&data=<?php the_permalink(); ?>" alt="<?php the_title(); ?>"/>

国内的话,Google API被屏蔽,qrserver速度很慢。

另外,wordpress的二维码插件,有的也是调用Google和qrserver的接口,有的是生成二维码图片存储在本地服务器,可以参考这篇文章:https://blog.brain1981.com/1362.html

常用的免费开源SVG icon图标库

收集整理了一些常用的免费的svg icon图标库,可以直接在自己网站上引用。

1、Font Awesome

网站:https://fontawesome.com/

应该是引用最多的图标库了吧,有免费的,也有收费的。

2、Google Material Icons

网站:http://google.github.io/material-design-icons/

Google官方出品。

3、iconfont

网站:https://www.iconfont.cn/collections/index

阿里出品。

4、flaticon

网站:https://www.flaticon.com/uicons

5、feather icons

地址:https://github.com/feathericons/feather

6、iconoir

地址:https://github.com/lucaburgio/iconoir

7、ionicons

网站:https://ionic.io/ionicons

注意ionicons的用法跟上面6个有点不同。

mysql数据库多线程LAST_INSERT_ID()

msql多线程的时候用LAST_INSERT_ID()比max(id)高效且不会被其他线程(connection)打断。

INSERT INTO wp_posts (post_title,post_content,post_author,post_name,post_date,post_excerpt,to_ping,pinged,post_content_filtered) VALUES ('[标签:标题]','[标签:内容]','1','[标签:slug]','[系统时间转化:yyyy-MM-dd HH:mm:ss]','','','','')
INSERT INTO wp_term_relationships (object_id,term_taxonomy_id) VALUES (LAST_INSERT_ID(),1)

但是LAST_INSERT_ID函数有几点必须注意,直接复制过来的:

  • If the most recent INSERT or UPDATE statement set more than one AUTO_INCREMENT value, the LAST_INSERT_ID function returns only the first AUTO_INCREMENT value.
  • The LAST_INSERT_ID function returns the last AUTO_INCREMENT value on a client-by-client basis, so it will only return the last AUTO_INCREMENT value for your client. The value can not be affected by other clients.
  • Executing the LAST_INSERT_ID function does not affect the value that LAST_INSERT_ID returns.

个人总结的几个注意事项:

1、如果一次insert插入多条value值,LAST_INSERT_ID()获取的是第一条value记录的自增ID;

2、如果是多条insert,插入同一个table表,LAST_INSERT_ID()获取的是最后一条insert记录的自增ID;

3、如果insert的表发生了变化,LAST_INSERT_ID()获取的自增ID也会变化,它返回的是最后一条insert记录的自增ID。

继续阅读

查看Linux服务器硬盘是固态硬盘(SSD)还是机械硬盘(HDD)

方法一,cat /sys/block/{fs_name}/queue/rotational

Linux 可以自动判定硬盘是否是 SSD,从 2.6.29 的内核版本之后,可以通过如下命令查看硬盘是不是 ssd:

cat /sys/block/{fs_name}/queue/rotational

其中,{fs_name} 是你的硬盘设备名称,例如 vda、vdb、sda 等等。

若上述命令返回 1 表示机械硬盘(hard disk),若返回 0,则表示固态硬盘(ssd)。

需要注意的是,如果设备是例如 RAID 这样的逻辑设备,上述命令可能不可用。

示例如下:

[[email protected] ~]$ cat /sys/block/vdb/queue/rotational
1
[[email protected] ~]$ grep ^ /sys/block/*/queue/rotational
/sys/block/vda/queue/rotational:1
/sys/block/vdb/queue/rotational:1

方法二,利用 lsblk 命令

使用 lsblk 命令进行判断,该命令属于 util-linux(一个 Linux 标准软件包)的一部分,参数 -d 表示显示设备名称,参数 -o 表示仅显示特定的列。

[[email protected] ~]$ lsblk -d -o name,rota
NAME ROTA
vda     1
vdb     1

其中 ROTA 表示 rotational device,1 代表是机械硬盘,0 则就是 ssd 了。

方法三,使用 fdisk 命令

使用 fdisk 命令,后面加 -l 选项表示查看磁盘详细信息,如果输出的详细信息中包含机械硬盘中有的 heads(磁头)、track(磁道)、cylinders(柱面)等概念,那表示是该磁盘是 HDD,否则很有可能是 SSD。

下面分别列出了 HDD 和 SSD 的示例:

Disk /dev/sda: 120.0 GB, 120034123776 bytes
255 heads, 63 sectors/track, 14593 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00074f7d
Disk /dev/nvme0n1: 238.5 GiB, 256060514304 bytes, 500118192 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos

方法四,使用第三方工具 smartctl

smartctl 是管理和监控存储硬件工具 smartmontools 的两个程序工具之一,另一个是 smartd 程序工具,可以通过如下命令查看磁盘信息:

smartctl -a /dev/{fs_name}

示例如下:

[[email protected] ~]$ smartctl -a /dev/disk1s1

如果看到如下一行信息,表示是固态硬盘(SSD)。

......
Rotation Rate:    Solid State Device
......
继续阅读

wordpress开启多站点网络

1、打开wp-config.php配置文件,将以下代码插入到 /* That’s all, stop editing! Happy publishing. */ 前一行:

define('WP_ALLOW_MULTISITE', true);

2、刷新wordpress后台,在 工具 – 网络配置 中,配置多站点网络。

3、按照提示,将代码复制到wp-config.php文件中保存。

4、伪静态规则。如果选择了用二级目录作为多站点,用的宝塔面板,选择伪静态规则wp2,或者复制以下代码:

rewrite ^.*/files/(.*)$ /wp-includes/ms-files.php?file=$1 last;
if (!-e $request_filename){
	rewrite ^.+?(/wp-.*) $1 last;
	rewrite ^.+?(/.*\.php)$ $1 last;
	rewrite ^ /index.php last;
}

如果是选择二级域名为多站点,宝塔伪静态规则选择wordpress即可。

5、如果登录后台控制台,出现重定向太多的错误,无法登录,找到:

** 
@package WordPress
*/

在下方添加如下代码:

$_SERVER['HTTPS'] = 'on';
define('FORCE_SSL_LOGIN', true);
define('FORCE_SSL_ADMIN', true);

6、给网站添加hreflang多语言标签:

移除wordpress版本及相关服务代码,提高安全

前面有关于移除wordpress rss feed防采集:

移除wordpress版本及相关服务代码,可以提高安全,汇总!

文章来自于我爱水煮鱼的博客,原文链接在最后。

版本号

​WordPress 会在页面头部显示你的 WordPress 版本号:

<meta name="generator" content="WordPress 3.5.1" />

作为博主的你,当然知道自己所使用的 WordPress 版本了,但是使用的 WordPress 版本直接暴露在外面,反而是一个安全隐患,万一你的 WordPress 一时没有升级,而这个版本刚好有安全问题,然后又给坏人知道了,那就造成安全问题,所以最好不要暴露在页面:

remove_action('wp_head', 'wp_generator');

RSD

Really Simple Discovery(RSD)是XML格式的一种发布约定,用于使 WordPress 可以被客户端软件发现,这是一种将客户端软件所需的信息减少到三个众所周知的元素的方法:用户名,密码和主页URL,其他关键设置都在 RSD 文件中定义。它会在页面头部输出代码如下:

<link rel="EditURI" type="application/rsd+xml" title="RSD" href="http://example.com/xmlrpc.php?rsd" />

简单说 XML-RPC 客户端发现机制需要用到,一般建议在使用 XML-RPC 客户端时候开启即可,其他时候建议关闭,省的被人使用 XML-RPC 客户端来尝试登录。

remove_action('wp_head', 'rsd_link');

wlwmanifest

wlwmanifest 是用来说明支持 Windows Live Writer ,它会在页面头部输出代码如下:

<link rel="wlwmanifest" type="application/wlwmanifest+xml" href="http://example.com/wp-includes/wlwmanifest.xml" />

如果你没有使用 Windows Live Writer 来写文章,那就移除它吧:

remove_action('wp_head', 'wlwmanifest_link');

这个原本的意图是如果你的文章的固定链接很长,告诉用户可以通过 http://example.com/?p=13150 这个的短链接的方式快速访问。它会在文章详情页的页面头部输出代码如下:

<link rel='shortlink' href='http://example.com/?p=13150' />

但是这个可能暴露文章的 ID,而你不想让人知道的话,那就最好移除它:

remove_action('wp_head', 'wp_shortlink_wp_head', 10, 0);

REST

它会在文章详情页的页面头部输出代码如下:

<link rel="https://api.w.org/" href="https://blog.wpjam.com/wp-json/" />

这个代码是用来告诉 APP 开发者,当前站点的 REST API 的地址,这个口头告诉一下就行了,没有必要在代码中输出:

remove_action('wp_head', 'rest_output_link_wp_head', 10);

汇总

汇总一次,将上面所有代码都复制到主题的 functions.php 就能一次性移除了:

remove_action('wp_head', 'wp_generator');
remove_action('wp_head', 'rsd_link');
remove_action('wp_head', 'wlwmanifest_link');
remove_action('wp_head', 'wp_shortlink_wp_head', 10, 0);
remove_action('wp_head', 'rest_output_link_wp_head', 10);
继续阅读

多语言网站的hreflang标签

在网页头部head中添加以下代码:

<link rel="alternate" hreflang="zh-CN" href="https://www168itw.com/seo/hreflang/" />

需要注意的是,不同语言的页面,一定要双向互相指向对方,否则hreflang不起作用,Google会忽略掉。

所以你需要在网页的header中列出所有的语言版本及链接。

还可以指定网页的默认语言版本:

<link rel="alternate" href="https://example.com/" hreflang="x-default" />

关于简体中文和繁体中文,也可以用zh-Hanszh-Hant

结合上文wordpress输出文章别名的方法,可以给wordpress站点设置多语言。

Google关于hreflang多语言的详细用法:

https://developers.google.com/search/docs/advanced/crawling/localized-versions

https://www.w3schools.com/tags/ref_language_codes.asp

wordpress输出文章别名post_name

<?php global $post; $post_slug = $post->post_name; ?>

输出:

<?php echo $post_slug; ?>

或者直接用:

<?php global $post; $post_slug=$post->post_name; echo $post_slug; ?>

另外一种方法是:

<?php $post_slug = get_post_field( 'post_name', get_post() ); ?>

进一步,如果要输出自定义字段的值,可以用:

<?php echo get_post_meta(get_the_ID(), 'key1', true); ?>

延伸:

wordpress常用函数:https://codex.wordpress.org/Function_Reference

wordpress全局变量:https://codex.wordpress.org/Global_Variables