Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

如果想更新旧文章,是不是更新完之后wordpress会创建一个新的post而不是update? #7

Open
clairyitinggu opened this issue Feb 12, 2022 · 13 comments · May be fixed by #10

Comments

@clairyitinggu
Copy link

如题

@rockbenben
Copy link

出现相同的问题。不能默认用新文章覆盖旧文章吗?

@clairyitinggu
Copy link
Author

出现相同的问题。不能默认用新文章覆盖旧文章吗?

好像不行,作者好像一直没有回复这个问题

@zhaoolee
Copy link
Owner

zhaoolee commented May 16, 2022 via email

@rockbenben
Copy link

文章与markdown文件名一一对应,只要不改文件名,就可以通过更新markdown,更新对应的文章内容 rockbenben @.> 于2022年5月6日周五 17:08写道:

出现相同的问题。不能默认用新文章覆盖旧文章吗? — Reply to this email directly, view it on GitHub <#7 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/ADZCEKUGRR3HJAQCSGBBHITVITOQNANCNFSM5OGEQ6EQ . You are receiving this because you are subscribed to this thread.Message ID: @.
>

文件名没更改过,但更新后新建了文章,链接后自动添加 _1

@cye18
Copy link

cye18 commented Jun 19, 2022

文章与markdown文件名一一对应,只要不改文件名,就可以通过更新markdown,更新对应的文章内容 rockbenben @.> 于2022年5月6日周五 17:08写道:

出现相同的问题。不能默认用新文章覆盖旧文章吗? — Reply to this email directly, view it on GitHub <#7 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/ADZCEKUGRR3HJAQCSGBBHITVITOQNANCNFSM5OGEQ6EQ . You are receiving this because you are subscribed to this thread.Message ID: _
@**
.**_>

文件名没更改过,但更新后新建了文章,链接后自动添加 _1

我测试的也是一样的结果。修改markdown会导致新增一篇post,url后缀是_2。删除markdown之后post没有变化。

@cye18
Copy link

cye18 commented Jun 19, 2022

我想我找到原因了。

目前这个repo默认永久url是/p/md_name.md,而在我的wordpress里默认的url是/yyyy/mm/dd/md_name.md

一开始get_posts()的时候,列表里的url都是yyyy/mm/dd格式的。

判断文章id是否存在的时候,肯定是不存在的,所以注定会触发new_post(),创建一篇新的post。

一个可能的解决方案是只对比最后一个/后面的部分,不知道有没有例外情况。有时间我也可以试试提交一个pr。

感谢@zhaoolee 提供的框架。这就是我想要的同步方法。

@rockbenben
Copy link

我想我找到原因了。

目前这个repo默认永久url是/p/md_name.md,而在我的wordpress里默认的url是/yyyy/mm/dd/md_name.md

一开始get_posts()的时候,列表里的url都是yyyy/mm/dd格式的。

判断文章id是否存在的时候,肯定是不存在的,所以注定会触发new_post(),创建一篇新的post。

一个可能的解决方案是只对比最后一个/后面的部分,不知道有没有例外情况。有时间我也可以试试提交一个pr。

感谢@zhaoolee 提供的框架。这就是我想要的同步方法。

你解决了吗?我的是/p/md_name.md,还是新增了

@cye18
Copy link

cye18 commented Jun 20, 2022

我想我找到原因了。
目前这个repo默认永久url是/p/md_name.md,而在我的wordpress里默认的url是/yyyy/mm/dd/md_name.md
一开始get_posts()的时候,列表里的url都是yyyy/mm/dd格式的。
判断文章id是否存在的时候,肯定是不存在的,所以注定会触发new_post(),创建一篇新的post。
一个可能的解决方案是只对比最后一个/后面的部分,不知道有没有例外情况。有时间我也可以试试提交一个pr。
感谢@zhaoolee 提供的框架。这就是我想要的同步方法。

你解决了吗?我的是/p/md_name.md,还是新增了

我的解决了。你看一下你的GitHub Actions里building那一段第一个输出里面的地址是什么?那是get_posts()的结果。如果这里也是/p,那应该没问题才对。

@rockbenben
Copy link

我想我找到原因了。
目前这个repo默认永久url是/p/md_name.md,而在我的wordpress里默认的url是/yyyy/mm/dd/md_name.md
一开始get_posts()的时候,列表里的url都是yyyy/mm/dd格式的。
判断文章id是否存在的时候,肯定是不存在的,所以注定会触发new_post(),创建一篇新的post。
一个可能的解决方案是只对比最后一个/后面的部分,不知道有没有例外情况。有时间我也可以试试提交一个pr。
感谢@zhaoolee 提供的框架。这就是我想要的同步方法。

你解决了吗?我的是/p/md_name.md,还是新增了

我的解决了。你看一下你的GitHub Actions里building那一段第一个输出里面的地址是什么?那是get_posts()的结果。如果这里也是/p,那应该没问题才对。

这个?刚放了几个测试文章,都是/p

2022-06-20-01-04-16开始从服务器获取文章列表...
[{'id': '960', 'link': 'https://newzone.top/p/2022-06-20-test-1-2'}, {'id': '958', 'link': 'https://newzone.top/p/2022-06-20-test-1'},

@cye18
Copy link

cye18 commented Jun 20, 2022

我想我找到原因了。
目前这个repo默认永久url是/p/md_name.md,而在我的wordpress里默认的url是/yyyy/mm/dd/md_name.md
一开始get_posts()的时候,列表里的url都是yyyy/mm/dd格式的。
判断文章id是否存在的时候,肯定是不存在的,所以注定会触发new_post(),创建一篇新的post。
一个可能的解决方案是只对比最后一个/后面的部分,不知道有没有例外情况。有时间我也可以试试提交一个pr。
感谢@zhaoolee 提供的框架。这就是我想要的同步方法。

你解决了吗?我的是/p/md_name.md,还是新增了

我的解决了。你看一下你的GitHub Actions里building那一段第一个输出里面的地址是什么?那是get_posts()的结果。如果这里也是/p,那应该没问题才对。

这个?刚放了几个测试文章,都是/p

2022-06-20-01-04-16开始从服务器获取文章列表...
[{'id': '960', 'link': 'https://newzone.top/p/2022-06-20-test-1-2'}, {'id': '958', 'link': 'https://newzone.top/p/2022-06-20-test-1'},

好奇怪呀,如果是/p应该是能对应上的。

愿意的话可以帮我测试一下我刚改的main.py能不能正确地update post。这里我用markdown的文件名来做匹配,而不是整个url。注意删markdown的时候要小心,因为我还加入了删除post的逻辑,理论上你删markdown,对应的post也会被删除。感谢。

@rockbenben
Copy link

我想我找到原因了。
目前这个repo默认永久url是/p/md_name.md,而在我的wordpress里默认的url是/yyyy/mm/dd/md_name.md
一开始get_posts()的时候,列表里的url都是yyyy/mm/dd格式的。
判断文章id是否存在的时候,肯定是不存在的,所以注定会触发new_post(),创建一篇新的post。
一个可能的解决方案是只对比最后一个/后面的部分,不知道有没有例外情况。有时间我也可以试试提交一个pr。
感谢@zhaoolee 提供的框架。这就是我想要的同步方法。

你解决了吗?我的是/p/md_name.md,还是新增了

我的解决了。你看一下你的GitHub Actions里building那一段第一个输出里面的地址是什么?那是get_posts()的结果。如果这里也是/p,那应该没问题才对。

这个?刚放了几个测试文章,都是/p

2022-06-20-01-04-16开始从服务器获取文章列表...
[{'id': '960', 'link': 'https://newzone.top/p/2022-06-20-test-1-2'}, {'id': '958', 'link': 'https://newzone.top/p/2022-06-20-test-1'},

好奇怪呀,如果是/p应该是能对应上的。

愿意的话可以帮我测试一下我刚改的main.py能不能正确地update post。这里我用markdown的文件名来做匹配,而不是整个url。注意删markdown的时候要小心,因为我还加入了删除post的逻辑,理论上你删markdown,对应的post也会被删除。感谢。

删除功能不敢用,不过参考你的代码找到我的问题了。

  1. md 文件名不能出现大写,否则wp会将链接转为小写,比对有可能就出错了。
  2. 比对环节多了斜扛。
    if(("https://"+domain_name+"/p/"+link+"/" in link_id_dic.keys()) == False):
    id = link_id_dic["https://"+domain_name+"/p/"+link+"/" ] 在链接尾部都添加了斜扛,但link_id_dic[]是没有的。

@cye18
Copy link

cye18 commented Jun 20, 2022

我想我找到原因了。

目前这个repo默认永久url是/p/md_name.md,而在我的wordpress里默认的url是/yyyy/mm/dd/md_name.md

一开始get_posts()的时候,列表里的url都是yyyy/mm/dd格式的。

判断文章id是否存在的时候,肯定是不存在的,所以注定会触发new_post(),创建一篇新的post。

一个可能的解决方案是只对比最后一个/后面的部分,不知道有没有例外情况。有时间我也可以试试提交一个pr。

感谢@zhaoolee 提供的框架。这就是我想要的同步方法。

你解决了吗?我的是/p/md_name.md,还是新增了

我的解决了。你看一下你的GitHub Actions里building那一段第一个输出里面的地址是什么?那是get_posts()的结果。如果这里也是/p,那应该没问题才对。

这个?刚放了几个测试文章,都是/p

2022-06-20-01-04-16开始从服务器获取文章列表...

[{'id': '960', 'link': 'https://newzone.top/p/2022-06-20-test-1-2'}, {'id': '958', 'link': 'https://newzone.top/p/2022-06-20-test-1'},

好奇怪呀,如果是/p应该是能对应上的。

愿意的话可以帮我测试一下我刚改的main.py能不能正确地update post。这里我用markdown的文件名来做匹配,而不是整个url。注意删markdown的时候要小心,因为我还加入了删除post的逻辑,理论上你删markdown,对应的post也会被删除。感谢。

删除功能不敢用,不过参考你的代码找到我的问题了。

  1. md 文件名不能出现大写,否则wp会将链接转为小写,比对有可能就出错了。

  2. 比对环节多了斜扛。

if(("https://"+domain_name+"/p/"+link+"/" in link_id_dic.keys()) == False):

id = link_id_dic["https://"+domain_name+"/p/"+link+"/" ] 在链接尾部都添加了斜扛,但link_id_dic[]是没有的。

赞,那你应该已经解决了?这样的话对比整个url确实还有你说这个问题,我觉得对比markdown的文件名要更把稳一些。还有就是应该还得研究一下Wordpress是不是默认把所有标题都变成小写。如果是的话还得限制所有_post文件夹里的文件标题都必须是小写,否则还是会有冲突。

@rockbenben
Copy link

我想我找到原因了。

目前这个repo默认永久url是/p/md_name.md,而在我的wordpress里默认的url是/yyyy/mm/dd/md_name.md

一开始get_posts()的时候,列表里的url都是yyyy/mm/dd格式的。

判断文章id是否存在的时候,肯定是不存在的,所以注定会触发new_post(),创建一篇新的post。

一个可能的解决方案是只对比最后一个/后面的部分,不知道有没有例外情况。有时间我也可以试试提交一个pr。

感谢@zhaoolee 提供的框架。这就是我想要的同步方法。

你解决了吗?我的是/p/md_name.md,还是新增了

我的解决了。你看一下你的GitHub Actions里building那一段第一个输出里面的地址是什么?那是get_posts()的结果。如果这里也是/p,那应该没问题才对。

这个?刚放了几个测试文章,都是/p

2022-06-20-01-04-16开始从服务器获取文章列表...

[{'id': '960', 'link': 'https://newzone.top/p/2022-06-20-test-1-2'}, {'id': '958', 'link': 'https://newzone.top/p/2022-06-20-test-1'},

好奇怪呀,如果是/p应该是能对应上的。

愿意的话可以帮我测试一下我刚改的main.py能不能正确地update post。这里我用markdown的文件名来做匹配,而不是整个url。注意删markdown的时候要小心,因为我还加入了删除post的逻辑,理论上你删markdown,对应的post也会被删除。感谢。

删除功能不敢用,不过参考你的代码找到我的问题了。

  1. md 文件名不能出现大写,否则wp会将链接转为小写,比对有可能就出错了。
  2. 比对环节多了斜扛。

if(("https://"+domain_name+"/p/"+link+"/" in link_id_dic.keys()) == False):
id = link_id_dic["https://"+domain_name+"/p/"+link+"/" ] 在链接尾部都添加了斜扛,但link_id_dic[]是没有的。

赞,那你应该已经解决了?这样的话对比整个url确实还有你说这个问题,我觉得对比markdown的文件名要更把稳一些。还有就是应该还得研究一下Wordpress是不是默认把所有标题都变成小写。如果是的话还得限制所有_post文件夹里的文件标题都必须是小写,否则还是会有冲突。

我这测到 WP 默认会把所有链接视为小写,所以文件名绝不能带大写。
我这解决了,把之前的文章标题全部改为小写,然后重新上传。测试了多个版本的覆盖更新,都能准确识别。
按 md 文件名来识别也不错,就是带了删除功能不敢用。
愿意深入研究的话,可以试试能不能指定 WP 文章显示的发布时间,我刚重新发布后,硬是手工改了50篇文章的发布时间……

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants