タグアーカイブ ニュースサイト

著者:admin

ワードプレスで個人的なニュースサイトを作ってみた

ニュースピックスにコメントを投稿すると、ワードプレスの投稿ページにタイトルと自分のコメントを挿入してくれます。

ここのページを参考にしました。
この人はカスタム投稿タイプを作成してそっちにさせてますが、私は通常の投稿タイプにしました。

newsをpostに変更するだけです。
アイキャッチ画像の設定はうまく行かなかったのでここだけは手動で行ってます。

上記サイトには載ってなかった注意点

私はPHPはよくわからないのでどうカスタマイズすればどう動くかよくわからなかったので、修正しては確かめてを繰り返しました。

  • 通常の投稿の場合は、newsをpostに
  • zapierの設定はtitleとcontentはtextにpostタイプは投稿、statusは下書き、categoryはNEWS(ワードプレスで投稿カテゴリーを新規作成)

問題は、この設定だと更新した時や通常の投稿をした時にもトリガーが実行されてしまいます。
そこで回避させるためコンテンツに、英語でニュースピックスという文字列が含まれている場合は、トリガーを実行しないようにさせました。


function modifyPost($id){
global $wpdb;
$post = $wpdb->get_results(“SELECT post_title, post_content, post_thumbnail FROM wp_posts WHERE id = $id”);
$content = $post[0]->post_content;
if(strstr($content, ‘ここはニュースピックスのスペルを入れてください’)){
$url = getUrlFromPost($content);
$new_title = getPageTitle($url);
$new_title = str_replace (“NewsPicks – “, “” , $new_title);
$image = getPageImage($url);

// update
$wpdb->query(“UPDATE wp_posts SET post_title = ‘$new_title’ WHERE id = $id “);
$wpdb->query(“UPDATE wp_posts SET post_content = REPLACE (post_content, ‘$url’ , ‘$link’) “);
$wpdb->query(“UPDATE wp_posts SET post_thumbnail = ‘$image’ WHERE id = $id “);

// 不要な部分の削除

$post = $wpdb->get_results(“SELECT post_content FROM wp_posts WHERE id = $id”);
$content = $post[0]->post_content;
$new_content = explode( ‘ / ‘, $content);
$tmp = explode( ‘<a’, $new_content[1]);
$new_content[0] .= ‘<br><a class=”button” href=”‘.$url.'” target=”blank”>Read</a>’.$tmp[1];
$new_content = str_replace(“#NewsPicks”, “” , $new_content[0]);
$wpdb->query(“UPDATE wp_posts SET post_content = ‘$new_content’ WHERE id = $id “);

}
}


赤字の部分を追加しました。
これだと記事にニュースピックスと英語で記載してしまうと、その記事にも投稿時トリガーが実行されるので、本当はタイトルとコメントが同じ場合にトリガーを実行させたかったのですが……うまく出来ませんでした。

一応思ったとおりの処理は実行出来ているので素人にしては上手くいった方かと思います。

……と思いましたが、これだとタイトルを読み込んでしまうのか。。。

一応こんな感じになりました。

インターフェースもかなり変更しました。
アイキャッチ画像とタイトルと本文の位置関係
記事一覧と記事本文のアイキャッチ画像のサイズ変更などなど