サポート » 使い方全般 » プラグイン:WP to Twitterとカスタム投稿について

  • お世話になります。

    カスタム投稿ページからツイッターへ投稿したいと思い、プラグインを色々試していたのですが、「WP to Twitter」というのが希望の表示に適していると判断し、現在テストを行っております。

    通常投稿では、問題なくツイートできているのですが「カスタム投稿ページ」に投稿しても全くつぶやいてくれません。

    何かしらの設定を行わないといけないのでしょうが、functions.phpを見ても判断できませんので、お力をお借りしたいと思い投稿させて頂きました。

    やりたいと思っているのは、「カスタム投稿ページに投稿したものだけツイッターへ投稿したい。」という事です。

    その他のプラグインで上記の様な事が可能な物があればそちらでもいいのですが、以下の様な事が出来る事が望ましく思っております。

    1)カスタム投稿ページに投稿したものだけ、ツイートしたい。
     ※カスタム投稿ページには、メール投稿したものだけ表示させております。
      プラグイン「postie」利用。

    2)投稿の件名はツイートに含まない。記事本文の20文字程度をツイートしたい。
     ※プラグイン「WP to Twitter」は、この部分の設定が可能でしたので利用

    どちら様もお忙しいとは存じますが、何卒アドバイスの方宜しくお願い致します。

12件の返信を表示中 - 1 - 12件目 (全12件中)
  • カスタム投稿が一種類なら、通常の投稿とカスタム投稿を入れ替えればOK。
    仮に、通常の投稿->普通のブログ、カスタム投稿->お知らせだとしたら、通常の投稿->お知らせ、カスタム投稿->普通のブログとする

    カスタム投稿がたくさんあるなら、プラグインの中身を調べて、フック先を通常の投稿からカスタム投稿に変更する必要があると思います。

    こういう投稿時にアクションを加える類の処理はpublish_postというフックを利用している場合が多いです。
    これはpublish_{投稿タイプ} に投稿された時にトリガーするフックですので
    publish_pageとすればページが投稿されたときに、publish_hogeとすればカスタム投稿hogeが投稿されたときに発動します。

    今回のプラグインの場合wp-to-twitter.phpの1046行目に
    add_action( 'publish_post', 'jd_twit', 12 );
    とあるのを
    add_action( 'publish_hoge', 'jd_twit', 12 );
    に変えれば多分ご希望の動作をするんじゃないかと思います。

    *余談ですが、これを調べていてfuture_to_publishのように
    {$old_status}_to_{$new_status}という古い投稿ステータスから新しい投稿ステータスになったときのフックと
    {$new_status}_{$post->post_type}のようにとある投稿タイプが、あるステータスになったときにトリガーするフックはあるのに
    とある投稿タイプが古い投稿ステータスから新しいステータスに変わったときにトリガーするフックはないのですね。

    トピック投稿者 csence

    (@csence)

    「php-web」様、
    「gogoweb」様、

    お忙しい中御教示頂きまして、誠にありがとうございます。

    早速テストを行いたいと思います。
    今後の事も考えまして、「wp-to-twitter.php」にてテストを行いたいと思います。

    結果につきましては、また投稿させて頂きたいと思いますので、宜しくお願い致します。

    とある投稿タイプが古い投稿ステータスから新しいステータスに変わったときにトリガーするフック
    そのものは無くて
    do_action('transition_post_status', $new_status, $old_status, $post);

    do_action("{$old_status}_to_{$new_status}", $post);
    で個別に判断するみたいですね。

    ご参考

    トピック投稿者 csence

    (@csence)

    「gogoweb」様、
    「kZ」様、

    ありがとうございます。

    「wp-to-twitter.php」を編集した結果、カスタム投稿タイプページからツイートできる事が分かりました。

    しかしながら、プラグイン「Postie」でメール投稿したものが、ツイートされません。
    管理画面からカスタム投稿タイプへの投稿は反映されるのですが、「Postie」経由で投稿されたものは、ツイッターへは投稿されませんでした。

    「Postie」経由で投稿されたものは、カスタム投稿タイプの管理画面およびブログの方には反映されるのですが、ツイッターだけに反映されないという現象です。

    「wp-to-twitter.php」で何らかの編集を行う処がないか現在チェック中ですが、よくわからない状態です。

    もしよろしければ、「Postie」経由でツイッターへも投稿できるようなアドバイスが頂ければ大変助かります。

    どうかよろしくお願い致します。

    Postieから投稿された投稿のステータスは公開(publish)になっているでしょうか?
    予約(future)や下書き(draft)だと上手く動きません。

    トピック投稿者 csence

    (@csence)

    「gogoweb」様、

    Postieのステータスは、「published」になっております。

    メール投稿自体は、ブログにも反映されるのですが、ツイッターのみに反映されないという事でございます。

    その他の情報ですが、「Message」の設定で、Default post by mail tag(s)
    部に「info」タグを設定しています。
    おそらく関係ないでしょうが、御報告まで。

    何かほかに情報等必要な部分があれば、提示させて頂きますので、宜しくお願い致します。

    jd_twit関数を調べてみると

    if ( ( $jd_post_info['postStatus'] == 'publish' || $_POST['publish'] == 'Publish') && ($_POST['prev_status'] == 'draft' || $_POST['original_post_status'] == 'draft' || $_POST['prev_status'] == 'pending' || $_POST['original_post_status'] =='pending' || $_POST['original_post_status'] == 'auto-draft' ) ) {

    となっていて、公開状態の時かつ、$_POSTの中身を参照しているようですねえ。
    編集画面を経由してないので$_POSTの中身がないので成立しないのですね。
    上の部分を
    if ( $jd_post_info['postStatus'] == 'publish' || $_POST['publish'] == 'Publish'){
    にすれば動きそうですが、別の弊害が起きそうなので、その前に
    add_action( 'publish_hoge', 'jd_twit', 12 );
    と先ほど変更した場所を
    add_action( 'publish_hoge', 'jd_twit_future', 12 );
    と変更して、
    wp-to-twitter.phpの608行目の

    function jd_twit_future( $post_ID ) {
        $post_ID = $post_ID->ID;

    の$post_ID = $post_ID->ID;をコメントアウトしてみてもらえないでしょうか?
    多分これでも動くような気がします。
    *ただし、デメリットとして予約投稿によるTwitter投稿ができなくなります。

    トピック投稿者 csence

    (@csence)

    「gogoweb」様、

    お忙しい中御教示頂きまして誠にありがとうございます。

    お恥ずかしい質問なのですが、
    「$post_ID = $post_ID->ID;をコメントアウトしてみてもらえないでしょうか?」
    というのは、どの様な事を行えばよろしいのでしょうか?

    初歩的な事だと思うのですが、初めての事で申し訳なく思っておりますが、
    何卒よろしくお願い致します。

    $post_ID = $post_ID->ID;

    //$post_ID = $post_ID->ID;
    にしてください。

    トピック投稿者 csence

    (@csence)

    「gogoweb」様、

    誠にありがとうございます。
    編集を終えテストしてみました。思った様な要綱が可能となり大変ありがたく思っております。

    明日、繰り返しテストを行い問題がないかどうかチェックしたいと思います。
    問題があればその時点で御報告致しますので、宜しくお願い致します。

    まずは、お礼まで!

    トピック投稿者 csence

    (@csence)

    2日間テストし、問題が発覚しまして自分で解決できないか色々やってみたのですが、未だ解決できておりませんので、厚かましいとは思いつつ再度アドバイスを頂けたらと思います。

    問題点は、以下の様なものです。

    問題点1)
    カスタム投稿ページに投稿されている記事タイトルをクリックしても、「Nothing found for Blog Archives」となり、コメントページに移動できない。

    おそらくカスタム投稿ページの記述に問題があるかと思い、

    <?php query_posts(array('post_type' => 'info') ); ?>
    <?php if(have_posts()): ?>
    <?php while(have_posts()): the_post();?>

    部を色々触ってみたのですが、うまくいかない状態です。

    「info_page.php」がカスタム投稿タイプのページなのですが、どの様に記述すればよいのかわかりません。

    以下、「info_page.php」のコードです。

    <?php query_posts(array('post_type' => 'info') ); ?>
    <?php if(have_posts()): ?>
    <?php while(have_posts()): the_post();?>
    
    <div class="trade_post">
    <h2 class="trade_title"><a href="<?php the_permalink(); ?>">
    <?php the_title(); ?></a></h2>
    
    <!--記事本文-->
    <div class="post_article">
    <?php the_content(); ?>
    
    ※以下省略

    問題点2)
    ページングが出来ない。
    「Return」「Next」といったページングが表示されない。
    以下のコードを記述しています。

    <!--投稿記事 Next/Remove ページ移動-->
    <?php if(is_page()): ?>
    <div class="pages_move">
    <ul>
    <li class="pages_return">
    <p><?php previous_posts_link('Return'); ?></p>
    </li>
    <li class="pages_next">
    <p><?php next_posts_link('Next'); ?></p>
    </li>
    </ul>
    <br class="clear" />
    </div>
    <?php endif; ?>

    上記2点が、問題点となります。
    スキル不足で、もっと勉強しなければならないと思い参考書を購入し取り組んでおりますが、理解できない部分が多く基礎的な部分から勉強しようと考えております。

    お忙しいとは存じますが、何卒よろしくお願い致します。

12件の返信を表示中 - 1 - 12件目 (全12件中)
  • トピック「プラグイン:WP to Twitterとカスタム投稿について」には新たに返信することはできません。