将自定义域添加到帖子,并将URL的某些部分作为值

时间:2014-08-22 作者:Advanced SEO

我希望将我的网站从一些其他CMS移动到WP。在我当前的CMS中没有任何有用的迁移、导出选项,因此我需要再次手动创建帖子。我将把当前CMS上帖子的重要字段转移到WP上的自定义字段。我正在考虑创建一些php函数,它将添加一些自定义字段,以便在新的WP站点上发布一些数据。

正如我所说,在我当前的CMS(主要是文件系统)上没有任何有用的导出工具,但我可以在我当前的CMS帖子链接上添加以下变量:

www.my-site。com/类别/子类别/帖子名称?某个字段的值

然后我会爬网我自己的网站,找到并列出后缀为“某个字段的值”的链接列表。之后,我会像这样更新链接列表到WP测试站点上的新站点位置。

www.test-wp。我的网站。com/类别/子类别/帖子名称?某个字段的值

然后我想在单曲上使用代码。php页面,检查url是否包含“?某个字段的值”,以及是否使用数据“某个字段的值”创建某个自定义字段。

我成功地做到了这一点,因为我知道我可以期望哪个值,如果有几个不同的值,数量有限,就像这样:

<?php
$currenturl = \'http://\' . $_SERVER[\'SERVER_NAME\'] . $_SERVER[\'REQUEST_URI\'];

// Look at URL
$pos1 = strpos($currenturl, "?value-one");
$pos2 = strpos($currenturl, "?value-two");
//...

// If URL has "?value-one" create new custom field and add value-one
if($pos1 == true) {
add_post_meta($id, \'my_new_custom_field_name\', \'value-one\', true);
}
// If URL has "?value-two" create new custom field and add value-two
 elseif($pos2 == true) {
add_post_meta($id, \'my_new_custom_field_name\', \'value-two\', true);  
}
// ...
?>
我需要的是代码,它将创建新的自定义字段,并在其中添加从url复制的数据,在“?”之后签名

例如,如果url如下所示:

www.site。com/类别/子类别/帖子名称?此处将提供一些文本描述

程序将爬行并保存该链接,如下所示:

www.site。com/类别/子类别/帖子名称?某些%20文本%20描述%20将%20放在此处

当然,如果需要的话,我可以在url中做一些开始、结束标记

www.site。com/类别/子类别/帖子名称?开始\\u一些%20文本%20描述%20将%20在%20此处\\u结束

What I need is code which will check if url contains something between "START__" and "__END" and to create new custom field with text between "START__" and "__END", and if it is possible to replace "%20" with space " ".

在本例中,创建值为“此处将显示一些文本描述”的新自定义字段

1 个回复
最合适的回答,由SO网友:Advanced SEO 整理而成

我找到了这个解决方案,效果很好。如果有人需要,我会在这里分享。

$currenturl = \'http://\' . $_SERVER[\'SERVER_NAME\'] . $_SERVER[\'REQUEST_URI\'];
$id = $post->ID;

if ( preg_match(\'/\\?(.+)$/\', $currenturl, $matches) ) {
   $value = urldecode($matches[1]);
   add_post_meta($id, \'my_new_custom_field_name\', $value, true);
}

结束

相关推荐

Rewriting URLs in Wordpress

我试图解决一个重写问题,但不完全理解如何阅读下面的代码。我相信event/industry/(.+)/?$\' 正在声明重写后新url中所需的格式,这应该是示例。com/事件/行业/某些术语/这部分似乎就是参数。=> \'index.php?post_type=eg_event&industry=\' . $wp_rewrite->preg_index(1)这是正确的理解吗?是什么告诉代码在我的新url中放置什么值,这是什么:(.+)/?$\' 是不是$wp_rewrite-