所以我试图通过FTP自动化视频上传和数据库中的插入。 我写了一个位于服务器上的脚本,并使用了包含的WP功能:
<?php
$title = $_GET["title"];
$pw = $_GET["key"];
$key = hash('sha256',$pw);
$hash = "hashfromkey";
if ($hash == $key){
$videowebm = $title . ".webm";
$videomp4 = $title . ".mp4";
$image = $title . ".jpg";
$content = "<video id=\"my-video\" class=\"video-js vjs-big-play-centered\" controls preload=\"auto\" poster='$image' data-setup=\"{}\">
<source src=\"$videomp4\" type='video/mp4'>
<source src=\"$videowebm\" type='video/webm'>
<p class=\"vjs-no-js\"> activate js</p></video> ";
include( "wp-config.php" );
// Gather post data.
$my_post = array(
'post_title' => $title,
'post_content' => $content,
'post_author' => 3
);
// Insert the post into the database.
$ID = wp_insert_post( $my_post, true );
}
?>
如果我在浏览器(urltofile?title=jeff&key=key)
中打开网址,一切正常。
使用python脚本时
#!/usr/bin/python3
from os import listdir;
adress = 'url';
user = 'ftpuser';
PW = 'ftppw';
url = 'urltofile?title=';
url_short = 'Urltofile';
key = '&key=key';
dir = input("Choose Folder");
for file in dir:
if file.endswith(".txt"):
print(file)
urlges = url + file + key;
#data = urllib.parse.urlencode(data);
#data = data.encode('utf-8');
html_quelltext = urllib.request.urlopen(urlges).read();
我得到了
<video id="my-video" class="video-js vjs-big-play-centered" controls preload="auto" poster='Testscribbles.txt.jpg'>
<p class="vjs-no-js"> activate js</p></video>
所以我错过了指定源代码的两行。我不明白为什么只有在使用脚本时才会发生(我在Perl中使用了相同的脚本,得到了相同的结果)。 我尝试使用urllib的get语句,但我无法使它工作(可能是一个不同的问题)。
有人知道解决方案可能是什么吗?
提前致谢!
答案 0 :(得分:0)
默认情况下,Wordpress post status'是“草稿”,有些未发布,具体取决于您的主题设置。
根据您当前的要求,您可能需要“发布”:
// Gather post data.
$my_post = array(
'post_title' => $title,
'post_content' => $content,
'post_author' => 3,
'post_status' => 'publish'
);
// Insert the post into the database.
$ID = wp_insert_post( $my_post, true );
答案 1 :(得分:0)
remove_all_filters("content_save_pre");
解决我的问题。 Wordpress试图清理代码以防止有害代码。