通过MySQL替换链接URL结束字符串

时间:2013-02-14 作者:Darwin229

我们即将购买一个使用亚马逊附属链接的网站。

当然,他们有自己的联盟ID,亚马逊联盟链接如下:

http://www.amazon.com/gp/product/productcode/?tag=affiliateID-20
在Wordpress博客中更改这些链接URL的结尾字符串的最佳方法是什么?

3 个回复
最合适的回答,由SO网友:RolandoMySQLDBA 整理而成

免责声明:不是WordPress开发人员,只是MySQL DBA

对于给定的表link_url

mysql> show create table wp_links\\G
*************************** 1. row ***************************
       Table: wp_links
Create Table: CREATE TABLE `wp_links` (
  `link_id` bigint(20) unsigned NOT NULL auto_increment,
  `link_url` varchar(255) NOT NULL default \'\',
  `link_name` varchar(255) NOT NULL default \'\',
  `link_image` varchar(255) NOT NULL default \'\',
  `link_target` varchar(25) NOT NULL default \'\',
  `link_description` varchar(255) NOT NULL default \'\',
  `link_visible` varchar(20) NOT NULL default \'Y\',
  `link_owner` bigint(20) unsigned NOT NULL default \'1\',
  `link_rating` int(11) NOT NULL default \'0\',
  `link_updated` datetime NOT NULL default \'0000-00-00 00:00:00\',
  `link_rel` varchar(255) NOT NULL default \'\',
  `link_notes` mediumtext NOT NULL,
  `link_rss` varchar(255) NOT NULL default \'\',
  PRIMARY KEY  (`link_id`),
  KEY `link_visible` (`link_visible`)
) ENGINE=MyISAM AUTO_INCREMENT=13 DEFAULT CHARSET=utf8
1 row in set (0.00 sec)

mysql>
你有这样的亚马逊链接:

http://www.amazon.com/gp/product/productcode/?tag=affiliateID-20
您希望将数字20替换为其他数字(如253),以便URL现在

http://www.amazon.com/gp/product/productcode/?tag=affiliateID-253
运行以下SQL脚本

SET @old_number = 20;
SET @new_number = 253;
SET @affiliate_prefix = \'http://www.amazon.com/gp/product/productcode/?tag=affiliateID-\';
SET @old_affiliate = CONCAT(@affiliate_prefix ,@old_number);
SET @new_affiliate = CONCAT(@affiliate_prefix ,@new_number);
CREATE TABLE linkids SELECT link_id FROM wp_links WHERE 1=2;
ALTER TABLE linkids ADD PRIMARY KEY;
INSERT INTO linkids SELECT link_id FROM wp_links WHERE link_url=@old_affiliate;
UPDATE linkids A INNER JOIN wp_links B USING (link_id) SET B.link_url=@new_affiliate;
DROP TABLE linkids;
试试看!!!

SO网友:Jared Cobb

我在这个插件上取得了一些成功:Search and Replace. 您可以输入完整的URL(包括旧的附属ID),并将其替换为包含新附属ID的完整URL。

SO网友:helgatheviking

与Jared的回答类似,我使用了Velvet Blues Update URLs 插件,更新URL。:)如果所有的URL都在内容中,那就足够了。如果您认为某些URL可能隐藏在其他地方,如元/选项,那么您可能需要尝试Serialized PHP Search and Replace script. 我最近使用它将WP移动到一个新的服务器上,它非常完美,非常简单。我想两者都对你有好处。

结束

相关推荐

WP-DBManager插件找不到MySQL路径

我支持WordPress 3.4.2网站lifering。org,在GoDaddy虚拟服务器上运行。最近,我选择将底层操作系统从CentOS 5升级到CentOS 6。重建是完全自动化的,我不知道它涉及到什么。我从备份中恢复了我的站点,从那以后,插件WP DBManager不再备份我们的MySQL数据库,因为它说它找不到MySQL路径。mysql路径是/usr/bin/mysql,与以前一样,但由于某种原因,找到它的PHP实用程序失败了。几周前,我在Wordpress支持论坛上发布了一个关于插件的问题,但