カスタム投稿が一種類なら、通常の投稿とカスタム投稿を入れ替えれば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}
のようにとある投稿タイプが、あるステータスになったときにトリガーするフックはあるのに
とある投稿タイプが古い投稿ステータスから新しいステータスに変わったときにトリガーするフックはないのですね。
「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);
で個別に判断するみたいですね。
ご参考
「gogoweb」様、
「kZ」様、
ありがとうございます。
「wp-to-twitter.php」を編集した結果、カスタム投稿タイプページからツイートできる事が分かりました。
しかしながら、プラグイン「Postie」でメール投稿したものが、ツイートされません。
管理画面からカスタム投稿タイプへの投稿は反映されるのですが、「Postie」経由で投稿されたものは、ツイッターへは投稿されませんでした。
「Postie」経由で投稿されたものは、カスタム投稿タイプの管理画面およびブログの方には反映されるのですが、ツイッターだけに反映されないという現象です。
「wp-to-twitter.php」で何らかの編集を行う処がないか現在チェック中ですが、よくわからない状態です。
もしよろしければ、「Postie」経由でツイッターへも投稿できるようなアドバイスが頂ければ大変助かります。
どうかよろしくお願い致します。
Postieから投稿された投稿のステータスは公開(publish)になっているでしょうか?
予約(future)や下書き(draft)だと上手く動きません。
「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投稿ができなくなります。
「gogoweb」様、
お忙しい中御教示頂きまして誠にありがとうございます。
お恥ずかしい質問なのですが、
「$post_ID = $post_ID->ID;をコメントアウトしてみてもらえないでしょうか?」
というのは、どの様な事を行えばよろしいのでしょうか?
初歩的な事だと思うのですが、初めての事で申し訳なく思っておりますが、
何卒よろしくお願い致します。
$post_ID = $post_ID->ID;
を
//$post_ID = $post_ID->ID;
にしてください。
「gogoweb」様、
誠にありがとうございます。
編集を終えテストしてみました。思った様な要綱が可能となり大変ありがたく思っております。
明日、繰り返しテストを行い問題がないかどうかチェックしたいと思います。
問題があればその時点で御報告致しますので、宜しくお願い致します。
まずは、お礼まで!
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点が、問題点となります。
スキル不足で、もっと勉強しなければならないと思い参考書を購入し取り組んでおりますが、理解できない部分が多く基礎的な部分から勉強しようと考えております。
お忙しいとは存じますが、何卒よろしくお願い致します。