Colorful-life.
フォーラムへの返信
-
フォーラム: 使い方全般
返信が含まれるトピック: ユーチューブのURLを綺麗にしたいこんにちは
URLのクエリー部分を削除(?以降を削除)したい、という理解で良いでしょうか?
やり方は色々あると思いますが、正規表現で置換するなら下記の様な感じで如何でしょう$url = 'https://www.youtube.com/embed/xxxxxxx?start=47&feature=oembed'; $url = preg_replace( '/\?.*\z/', '', $url );
フォーラム: 使い方全般
返信が含まれるトピック: 外部のRSSを複数取得する方法的外れな指摘で失礼しました
取得するRSSの文法の問題かもしれない、という事なのですね
RSS取得失敗の際にWP_Error のメッセージなど表示させてみると調査の助けになるかもしれません、ご参考まで。
例えば、こんな感じで…
$feed = fetch_feed($url); if ( true === empty( $feed ) ) continue; if ( true === is_wp_error( $feed ) ) { var_dump( $feed->get_error_messages() ); continue; }
フォーラム: 使い方全般
返信が含まれるトピック: 外部のRSSを複数取得する方法Warning: implode() [function.implode]: Invalid arguments passed in
implode()
の第二引数が配列では無いからですよね
(Aの場合なら)$html_A が未定義なのでエラーが出ているのでは無いでしょうか?エラーが出なくなれば良いだけなら、
$output_num = 0; foreach($A_items as $item) {
の部分を
$output_num = 0; $html_A = []; foreach($A_items as $item) {
とすれば良いと思います。
ちなみに、当方の環境( WordPress 4.7.5 、 PHP 7.1.5 )では
fetch_feed()
も問題無く動作しており、
その返り値(SimplePieクラスのインスタンス)に対したメソッドget_items()
なども動作していますので、
$feed = fetch_feed($url);
が失敗している原因を特定する必要がありそうですね例えば、RSSへのリクエストに対して、ユーザーエージェントやIPなどでブロックされている等は考えられませんか?
フォーラム: 使い方全般
返信が含まれるトピック: 外部のRSSを複数取得する方法こんにちは
ご提示なさったコード全てに目を通した訳では無いのですが、
エラーの原因としてはget_news_from_feeds()
関数内でフィードの取得が失敗した時に起こっているのでは無いでしょうか?fetch_feed()
で取得に失敗したときに WP_Error が返ってきていると思いますので、$feed = fetch_feed($url); if ( true === is_wp_error( $feed ) || true === empty( $feed ) ) continue;
などとして、失敗時にスキップするようにしてみるとどうなりますか?
[追記]
あと、「いつからか不明」との事ですので、取得するフィードのURLが正しい物か(実際に存在しているか)確認した方が良いかもしれませんね- この返信は7年、 9ヶ月前にColorful-life.が編集しました。理由: タイポ
- この返信は7年、 9ヶ月前にColorful-life.が編集しました。理由: 追記
フォーラム: 使い方全般
返信が含まれるトピック: カスタム投稿の公開状態を自動で変更したい@dwc-1 さん、すみません
解決済になっており、今更なのですが…1.「投稿者」に設定してあるユーザーがカスタム投稿タイプにブログを投稿する。
2.「投稿者」はログイン後も管理画面にはアクセスできず、ACFプラグインで作成したフロントエンド側から投稿できる仕組みacf_form()を利用してブログを書く。
3.ブログ投稿フォームにアクセスしようとすると自動で白紙の下書きが作成・保存される。
4.「投稿者」が記事を書いて投稿ボタンを押すと下書きから非公開に変更される。
5.非公開化から30分後に公開される。
6.公開されている記事をacf_form()経由で編集すると再度非公開に変更される。
7.編集後30分で公開される。上記の流れをよくよく考えてみると、単純に、記事の投稿・更新ボタン押下からの経過時間のみをトリガーにして記事を公開したい、という事ですよね?
でしたら、(投稿ステータス「非公開」にこだわらないのであれば)「予約済」にして処理するのが良い(簡単な)ように思えるのですが如何でしょうか、ご参考まで。$my_post = array( 'id' => $post->ID, 'post_status' => 'future', 'post_date' => date( 'Y-m-d H:i:s', strtotime( '+30 minute', current_time( 'timestamp' ) ) ), );
- この返信は7年、 9ヶ月前にColorful-life.が編集しました。理由: タイポ
フォーラム: プラグイン
返信が含まれるトピック: MW WP FORM について@tsuru さん、こんにちは
お困りなのでしたら、他の方の(しかも解決済みの)トピックに返信するのでは無く、ご自身でトピックを建てられた方がアドバイスを受けられやすいと思いますよ
と、それだけでは何ですので…
お困りのエラーメッセージの件ですが、
ご利用中のMW WP Formのバージョンが 3.2.0 でしたら、3.2.1 に更新なさってから再確認する事をお勧めします。
(このエラーメッセージの表示に関係する修正が行われています)フォーラム: 使い方全般
返信が含まれるトピック: カスタムフィールドの順番がおかしくなるちなみにメタBOXを非表示にした際、
実際のフィールドと表示オプションのチェックボックスの
両方が消えるのでしょうか?はい、remove_meta_boxで指定したメタBOXはチェックボックスも消えます。
ですので、これが適用された場合(上のコードの例だとadministrator以外)は、(表示オプションから)メタBOXを表示する事自体出来なくなりますねフォーラム: 使い方全般
返信が含まれるトピック: カスタムフィールドの順番がおかしくなるお気持ちお察しします…
そうしますと、はじめてログインしてくるユーザーは
どうなるんでしょうか・・・?初期状態は(権限毎に非表示になる物は覗いて)同一になると思います
メタBOXの並び順は、priorityが同じならメタBOXが登録された順番になるのでしょうか(詳しくは分かっていないです)逆に異なるユーザーにそれぞれ設定させない方法はないのでしょうか??
メタBOXの並び順はちょっと分からないんですが、
私がよく使うのは、ユーザー権限毎にメタBOXを非表示にしてしまう方法ですね。
例えばこんな感じです、ご参考まで。
(下記の例では権限グループがadministratorでは無い場合、一律に作成者とカスタムフィールドのメタBOXを非表示にしてます。権限グループでの判定が不味ければユーザーロールや、ユーザーID・ユーザー名等で判定するなど、適宜変更してください)add_action( 'do_meta_boxes', 'clf_remove_author_meta_boxes' ); function clf_remove_author_meta_boxes() { if ( true !== current_user_can('administrator') ) { // 作成者 remove_meta_box( 'authordiv', false, 'normal' ); // カスタムフィールド remove_meta_box( 'postcustom', false, 'normal' ); } }
remove_meta_boxについて:
https://codex.wordpress.org/Function_Reference/remove_meta_box- この返信は7年、 9ヶ月前にColorful-life.が編集しました。
フォーラム: 使い方全般
返信が含まれるトピック: カスタムフィールドの順番がおかしくなるこんにちは
確認できたのはカスタム投稿タイプの投稿ページからだけになるのですが、
自分のPCでは大丈夫なのに、他の人のPCから確認したらフィールドの順番が
変わってしまったという現象です。こちら、管理画面側の新規投稿追加・編集画面でのお話という理解で合っていますでしょうか?
また、「他の人のPCから確認」とは異なるユーザーでログインした時のお話でしょうか?そうであれば、表示オプションやメタBOX(本件の場合は「トピックス基本情報」等のフィールドグループ)の並び順などは、各ユーザー毎に保存されていますので、ユーザーが、それぞれ設定・並び順を変更した場合はユーザー毎に異なる物になります。
(例えば、var_dump( get_user_meta(1) );
等としてみるとわかりやすいでしょうか。)- この返信は7年、 9ヶ月前にColorful-life.が編集しました。
フォーラム: テーマ
返信が含まれるトピック: rssfeedのサムネイル画像のサイズ調整の仕方こんばんは
ご提示なさった rss_post_thumbnail 関数内の get_the_post_thumbnail() 関数でサイズを指定すると良いと思います
第二引数で定義済みのサイズ名 または 幅と高さの配列を指定できます- この返信は7年、 9ヶ月前にColorful-life.が編集しました。
フォーラム: 使い方全般
返信が含まれるトピック: 権限別の分岐表示につきまして@backcool さんの意図が汲み取れておらずすみません。
投稿とは無関係に、
ログイン中のユーザーがどの権限グループに属しているか、で表示を振り分ける、
で合っていますか?であれば、 current_user_can( ‘権限グループ名’ ) で条件判定できると思います
https://codex.wordpress.org/Function_Reference/current_user_can例えば寄稿者の場合なら、下記の様な感じで…
if ( true === current_user_can( 'contributor' ) ) { // 寄稿者の場合 } else { // それ以外の場合 }
権限グループについて:
https://codex.wordpress.org/Roles_and_Capabilities#Summary_of_Rolesフォーラム: 使い方全般
返信が含まれるトピック: 権限別の分岐表示につきましてこんにちは
ログイン中のユーザーが現在表示している(グローバルの$postにセットされている)投稿の作成者かどうか、で表示を振り分けたい、という理解で良いでしょうか?
であれば、下記の様な感じでどうでしょう?
$user_id = get_current_user_id(); if ( false === empty( $user_id ) && get_the_author_meta('ID') === $user_id ) { // 作成者の場合 } else { // その他の場合(他のユーザー or 未ログイン) }
- この返信は7年、 9ヶ月前にColorful-life.が編集しました。理由: 補足追加
フォーラム: 使い方全般
返信が含まれるトピック: jetpackのsharing.cssを無効にしたいです言葉足らずですみません、
wp_dequeue_styleやwp_deregister_styleは非推奨では無いと思いますあと、私自身もよく分かっていないのですが、非推奨なのは wp_print_styles を使用してcssやjsを登録する事であって、 wp_print_styles アクションフックの使用自体は問題無いのかもしれません…(自信なし)
フォーラム: 使い方全般
返信が含まれるトピック: カスタム投稿の公開状態を自動で変更したいお疲れ様です
ちなみにwp_cronを使う方法というのは、こんな感じで方向的にはあってるんでしょうか?
方向的にはあっていると思うのですが、このままだと
・wp_cron実行時に目的の投稿IDを取得出来ない
・’blog_cron_event’アクションにフックしたスケジュールが1つしか登録出来ない
様に見えますので、イベントに引数(投稿ID)を渡すようにするのはどうでしょう?4.「投稿者」が記事を書いて投稿ボタンを押すと下書きから非公開に変更される。
6.公開されている記事をacf_form()経由で編集すると再度非公開に変更される。
のタイミングで wp_schedule_single_event を処理させるのだと思いますので、その時の投稿IDを渡す感じでしょうか
if ( ! wp_next_scheduled( 'blog_cron_event', array( $post->ID ) ) && /* 省略・・・ */ ) { wp_schedule_single_event( time() + 1800, 'blog_cron_event', array( $post->ID ) ); // 省略 function blog_publish_cron( $post_id ) { $my_blog_post = array('ID' => $post_id, // 省略
あと、今のスケジュール登録の条件判定だと、一度スケジュールが登録された後は再スケジュール出来ない様に見えますので、「6.投稿編集」時には、「4.新規投稿」時に登録したスケジュールが未実行だった場合に、スケジュール解除(
wp_unschedule_event
)してからスケジュールを再登録する、などの処理が必要になるでしょうかね?フォーラム: 使い方全般
返信が含まれるトピック: カスタム投稿の公開状態を自動で変更したいこんばんは
@latobeamさんが仰るように、wp_cronで処理する方が良いと思いますが、おいおいという事ですので、それは置いておいて…
// データベースにある投稿を公開に変更する $my_post = array( 'id' => $post->ID, 'post_status' => 'publish' ); wp_update_post( $my_post );
この部分、
'ID' => $post->ID,
(キーを大文字のIDにする)が正しいと思います
(当方の環境だと小文字’id’で投稿IDを指定した配列をwp_update_postに使用すると、投稿の更新に失敗してしまうのですが、動作していますか?)あと、
$key_time
を投稿日のタイムゾーンと合わせる為にdate_default_timezone_set('Asia/Tokyo');
とされていますが、
これはやめて、WordPress関数のcurrent_time()
を使用した方が良いように思います
$key_time = strtotime( '-30 min', current_time( 'timestamp' ) );
current_time()
関数について:
http://wpdocs.osdn.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/current_time
ちなみに、Codex日本語版だと記述が無いのですが、ver.3.9以降、date()
関数と同様に日付フォーマットも解釈するようになっています過去にどこかから引っ張ってきたコードを参考に作ったので出典を忘れてしまいまして…調べたらこんなのがあったので文字列でも比較できるとは思うのですが…
今回の場合、比較する日付のフォーマットを
Y/m/d H:i:s
として、年月日時分秒 とも二桁になるフォーマットで揃えてありますので問題無く比較できますが、タイムスタンプで比較した方が間違いがない様に思います