WordPressにPythonで自動投稿(項目詳細)

ブログ

WordPressの投稿を行う際には、WordPressPostを使います。
WordPressPostにはどのような情報が入っているのか確認し、
Python投稿時にメタ情報やURLを指定するにはどうすればいいのか紹介します。

WordPressPostクラスについて

WordPressPostは、WordPressサイト上の投稿(post)、ページ(page)、その他のカスタム投稿タイプ(custom post type)を表現するクラスです。このクラスの各属性とその具体例について説明します。

クラス属性と具体例

  1. id
    – 投稿の一意のID。
    – 例: 123

  2. user
    – 投稿の作成者。
    – 例: 1(ユーザーID)

  3. date (datetime)
    – 投稿の作成日時。
    – 例: datetime.datetime(2023, 7, 25, 12, 0, 0)

  4. date_modified (datetime)
    – 投稿の最終更新日時。
    – 例: datetime.datetime(2023, 7, 26, 15, 30, 0)

  5. slug
    – 投稿のURLスラッグ(パーマリンクに使用)。
    – 例: 'my-first-post'

  6. post_status
    – 投稿のステータス。例: 'publish', 'draft', 'pending', 'private'
    – 例: 'publish'

  7. title
    – 投稿のタイトル。
    – 例: 'My First Post'

  8. content
    – 投稿の内容(HTML形式が一般的)。
    – 例: '<p>This is the content of my first post.</p>'

  9. excerpt
    – 投稿の抜粋。
    – 例: 'This is a summary of my first post.'

  10. link

    • 投稿のURL。
    • 例: 'https://example.com/my-first-post'
  11. comment_status

    • コメントのステータス。例: 'open', 'closed'
    • 例: 'open'
  12. ping_status
    ping_statusは、他のブログからのトラックバックやピンバックを許可するかどうかを設定する属性です。トラックバックやピンバックは、他のブログが自分のブログの投稿にリンクしたときに通知を受け取るための仕組みです。設定値は以下の通りです:

    • 'open': トラックバックやピンバックを許可する。
    • 'closed': トラックバックやピンバックを許可しない。
    • 例: 'open'
  13. terms (list of WordPressTerms)

    • 投稿に関連付けられたカテゴリやタグ。
    • 例: [WordPressTerm(id=1, name='Category1'), WordPressTerm(id=2, name='Tag1')]
  14. terms_names (dict)

    • 投稿に関連付けられたカテゴリやタグの名前(新しいカテゴリやタグを作成する場合に使用)。
    • 例: {'category': ['Category1'], 'post_tag': ['Tag1', 'Tag2']}
  15. custom_fields (dict)

    • カスタムフィールド。
    • 例: {'my_custom_field': 'Custom value'}
  16. enclosure (dict)

    • エンクロージャー情報(ポッドキャストなどに使用)。
    • 例: {'url': 'https://example.com/podcast.mp3', 'length': '12345678', 'type': 'audio/mpeg'}
  17. password

    • 投稿に設定するパスワード。
    • 例: 'mypassword'
  18. post_format

    • 投稿フォーマット。例: 'standard', 'aside', 'gallery'
    • 例: 'standard'
  19. thumbnail

    • サムネイル画像のID。
    • 例: 456(メディアライブラリの画像ID)
  20. sticky

    • 投稿を先頭に固定するかどうかのフラグ。
    • 例: True
  21. post_type

    • 投稿タイプ。例: 'post', 'page', 'custom_post_type'
    • 例: 'post'

メタタグに関するデータを入れる方法

custom_fields属性を使用してメタタグに関するデータを保存できます。例えば、以下のようにカスタムフィールドにキーとバリューを設定します。ただし、キーは、使用しているテーマやプラグインによって、異なりますので、使用しているテーマやプラグインに応じて変更してください。
Cocoonでの場合は以下の記事で解説しています。

post.custom_fields = [
        {'key': 'meta_description', 'value': 'メタタグデスクリプション'},
        {'key': 'meta_keywords', 'value': 'キーワード1, キーワード2'},
    ]

パーマリンクを指定する方法

パーマリンクは通常、slug属性を設定することで指定できます。例えば:

post.slug = 'my-custom-permalink'

これにより、投稿のURLがhttps://example.com/my-custom-permalinkのようになります。

  • slug: 投稿のURLの一部を構成する文字列です。通常、投稿のタイトルをベースにして作られますが、カスタマイズも可能です。スラッグはパーマリンクの一部であり、SEOやユーザーの利便性向上のために使われます。

  • link: 投稿の完全なURLです。この属性は通常、自動的に生成されますが、読み取り専用で設定されることが一般的です。スラッグとサイトのドメインを組み合わせて形成されます。

post.slug = 'my-first-post'  # スラッグを設定する
# 完全なリンクは自動生成される
print(post.link)  # 例: 'https://example.com/my-first-post'

スラッグとリンクの関係を具体的に示すと、次のようになります:

  • ドメイン:https://example.com
  • スラッグ:my-first-post
  • 完全なリンク:https://example.com/my-first-post

スラッグはリンクの一部となり、リンク全体はブログのドメインに基づいて生成されます。

まとめ

WordPressPostクラスの各属性を使用して、投稿の詳細を指定できます。特に、custom_fieldsを利用することでメタタグのデータを追加し、slugを設定することでパーマリンクを指定できます。

タイトルとURLをコピーしました