pythonからWordPressのカスタムフィールドから記事検索
投稿方法は過去記事を参考にしてください。
www.techbox.work
環境
- python3
準備
pipでインストール
pip install python-wordpress-xmlrpc
ソース
from wordpress_xmlrpc import Client, WordPressPost from wordpress_xmlrpc.methods.posts import GetPosts, NewPost from wordpress_xmlrpc.methods.users import GetUserInfo from wordpress_xmlrpc.methods import media wpSiteXMLRPC = 'http://サイト名/xmlrpc.php' loginId = '***' password = '***' def CheckPost(costomID): wp = Client(wpSiteXMLRPC, loginId, password) posts = wp.call(GetPosts({ 'post_type':'post', 'number':100000 })) exitFlg = False for post in posts: for custom_field in post.custom_fields: if(custom_field['key'] == 'costomID'): if(custom_field['value'] == costomID): exitFlg = True break; return exitFlg
本当はピンポイントで1つの記事だけ取得できたらいいだけど、うまくいかなかったからとりあえずfor文でまわすことにしますた
以上です。
pythonからWordPressに投稿&画像のアップロード
環境
- python3
準備
pipでインストール
pip install python-wordpress-xmlrpc
ソース
from wordpress_xmlrpc import Client, WordPressPost from wordpress_xmlrpc.methods.posts import GetPosts, NewPost from wordpress_xmlrpc.methods.users import GetUserInfo from wordpress_xmlrpc.methods import media wpSiteXMLRPC = 'http://サイト名/xmlrpc.php' loginId = '***' password = '***' post = WordPressPost() # タイトル post.title = title # 投稿内容 post.content = body # タグ、カテゴリ post.terms_names = { 'post_tag': ***, 'category': *** } # 投稿URL(スラッグ) post.slug = *** #画像のアップロード with open(imgPath, 'rb') as f: binary = f.read() data = { "name": imgPath.replace("tmp/",""), "type": 'image/jpeg', "overwrite": True, "bits": binary } media_id = wp.call(media.UploadFile(data))['id'] # 画像アイキャッチの指定 post.thumbnail = media_id #投稿時間 #※よくわからんが、タイムゾーンが違うらしい。-9時間するとちょうど今の時間になるらしい post.date = datetime.datetime.now() - datetime.timedelta(hours=9) #カスタムフィールド customFields = [] customFields.append({ 'key': 'aaa', 'value': '***' }) customFields.append({ 'key': 'bbb', 'value': '***' }) post.custom_fields = customFields # 投稿する # 公開済にする。 post.post_status = 'publish' # 下書き指定の場合 # post.post_status = 'draft' wp.call(NewPost(post))
以上です。
【.NET】DataGridViewの描画が遅い時の対策
DataGridViewの描画が遅い時の対策を紹介します。
100件程度であれば気にならないかと思いますが、
大量の行列がある状態でスクロールをすると、スクロールバーを動かすとビッビッビッみたいな感じで描画がスムーズに表示してくれない(ちらつく)んですね。
その場合の対策ですが【DoubleBuffered】というのを有効にすれば良いです。
protected void Initialize() { //DataGridViewの画面ちらつきをおさえるため、DoubleBufferedを有効にする // DataGirdViewのTypeを取得 System.Type dgvtype = typeof(DataGridView); // プロパティ設定の取得 System.Reflection.PropertyInfo dgvPropertyInfo = dgvtype.GetProperty("DoubleBuffered", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic); // 対象のDataGridViewにtrueをセットする dgvPropertyInfo.SetValue(targetDataGridview, true, null); }
これを実行することで、パッと表示され、スムーズにスクロールすることが確認できました。
以上です。
【EXCEL】CSVを開くと文字の形式が変わってしまう問題の対処について
概要
CSVをexcelで開くと、文字の形式が変わってしまい、そのまま保存してしまうと保存前の値と異なってしまうことがあります。
参考例として、csvをメモ帳で確認してみましょう。
メモ帳を開いて、csvファイルをドラッグ&ドロップします。
csvファイルは、カンマ区切りされています。
これをcsvファイルをそのままダブルクリックしてエクセルで開くと、次のようになります。
ID、番号列の頭に0がついていましたが、消えてしまっていますね。
これはエクセルの標準機能で、csvを開くと自動的に0を取り除き、数字として認識されます。
※この時点ではまだ保存されていないため、実際のファイルのデータが書き換わっているわけではありませんが、上書き保存すると値が書き換わってしまいますのでご注意ください。
基本的にexcelでcsvファイルを開いて勝手に文字列を変換されてしまうのが都合が悪い場合は、ファイルからエクセルを起動させないでください。
文字列を変換せずにエクセルで開く方法を紹介します。
手順
スタートメニューより、excelを開きます。
リボンメニュー【データ】>外部データ取り込みの【テキストファイル】をクリックし、対象のcsvファイルを開きます。
そのまま【次へ】をクリックします。
区切り文字を【カンマ】にチェックをいれて、列が区切られていることを確認し、【次へ】を選択します。
サンプルのA列、B列は【0001】というようなデータをそのまま文字列として表示したいので、列のデータ形式を【文字列】に変更します。
他の列は問題なければ、そのままOKでかまいません。
A1(一番左上)に貼り付けましょう。変更したい場合は任意の位置を指定します。
成功すると、次のようになります。
保存する場合
再度CSVで保存する場合はファイル>【名前を付けて保存】を選択します。
ファイルの種類は【CSV】を選択し、保存すればOKです。
以上です。
【Windows】TortoiseSVNでコマンドから実行しよう
ダウンロード先
TortoiseSVN公式ページよりダウンロードを行います。
Downloads · TortoiseSVN
32bitか64bitを環境にあったインストーラーをダウンロードしてください。
日本語化
TortoiseSVN公式ページより、Language packs>Japaneseの日本語化パックがありますので、ダウンロードしてそのまま実行すればOKです。
サンプルバッチ
以下のようなbatを作成しました。
commit対象が複数あり、同じlogメッセージを入れる場合等に便利です。
■add_commit.bat
SET message="logメッセージ" REM add "C:\Program Files\TortoiseSVN\bin\TortoiseProc.exe" /command:add /path:"ファイルパス" /closeonend:3 REM commit "C:\Program Files\TortoiseSVN\bin\TortoiseProc.exe" /command:commit /path:"ファイルパス" /closeonend:3 /logmsg:%message%
以上です。
【SQLServer】CSVファイルをインポートし、テーブルを作成する
SQLServerでCSVからデータをインポートし、テーブルを作成する方法を紹介します。
続きを読む【Windows】よく使うコマンド集
Windowsで自分がよく使うコマンド集を紹介します。
続きを読む