フォーラムへの返信

15件の返信を表示中 - 1 - 15件目 (全50件中)
  • フォーラム: 使い方全般
    返信が含まれるトピック: ユーチューブのURLを綺麗にしたい
    Colorful-life.

    (@colorfullifeinfo)

    こんにちは

    URLのクエリー部分を削除(?以降を削除)したい、という理解で良いでしょうか?
    やり方は色々あると思いますが、正規表現で置換するなら下記の様な感じで如何でしょう

    $url = 'https://www.youtube.com/embed/xxxxxxx?start=47&feature=oembed';
    $url = preg_replace( '/\?.*\z/', '', $url );
    フォーラム: 使い方全般
    返信が含まれるトピック: 外部のRSSを複数取得する方法
    Colorful-life.

    (@colorfullifeinfo)

    的外れな指摘で失礼しました

    取得する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を複数取得する方法
    Colorful-life.

    (@colorfullifeinfo)

    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を複数取得する方法
    Colorful-life.

    (@colorfullifeinfo)

    こんにちは

    ご提示なさったコード全てに目を通した訳では無いのですが、
    エラーの原因としては 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.が編集しました。理由: 追記
    フォーラム: 使い方全般
    返信が含まれるトピック: カスタム投稿の公開状態を自動で変更したい
    Colorful-life.

    (@colorfullifeinfo)

    @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 について
    Colorful-life.

    (@colorfullifeinfo)

    @tsuru さん、こんにちは

    お困りなのでしたら、他の方の(しかも解決済みの)トピックに返信するのでは無く、ご自身でトピックを建てられた方がアドバイスを受けられやすいと思いますよ

    と、それだけでは何ですので…

    お困りのエラーメッセージの件ですが、
    ご利用中のMW WP Formのバージョンが 3.2.0 でしたら、3.2.1 に更新なさってから再確認する事をお勧めします。
    (このエラーメッセージの表示に関係する修正が行われています)

    フォーラム: 使い方全般
    返信が含まれるトピック: カスタムフィールドの順番がおかしくなる
    Colorful-life.

    (@colorfullifeinfo)

    ちなみにメタBOXを非表示にした際、
    実際のフィールドと表示オプションのチェックボックスの
    両方が消えるのでしょうか?

    はい、remove_meta_boxで指定したメタBOXはチェックボックスも消えます。
    ですので、これが適用された場合(上のコードの例だとadministrator以外)は、(表示オプションから)メタBOXを表示する事自体出来なくなりますね

    フォーラム: 使い方全般
    返信が含まれるトピック: カスタムフィールドの順番がおかしくなる
    Colorful-life.

    (@colorfullifeinfo)

    お気持ちお察しします…

    そうしますと、はじめてログインしてくるユーザーは
    どうなるんでしょうか・・・?

    初期状態は(権限毎に非表示になる物は覗いて)同一になると思います
    メタ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.が編集しました。
    フォーラム: 使い方全般
    返信が含まれるトピック: カスタムフィールドの順番がおかしくなる
    Colorful-life.

    (@colorfullifeinfo)

    こんにちは

    確認できたのはカスタム投稿タイプの投稿ページからだけになるのですが、
    自分のPCでは大丈夫なのに、他の人のPCから確認したらフィールドの順番が
    変わってしまったという現象です。

    こちら、管理画面側の新規投稿追加・編集画面でのお話という理解で合っていますでしょうか?
    また、「他の人のPCから確認」とは異なるユーザーでログインした時のお話でしょうか?

    そうであれば、表示オプションやメタBOX(本件の場合は「トピックス基本情報」等のフィールドグループ)の並び順などは、各ユーザー毎に保存されていますので、ユーザーが、それぞれ設定・並び順を変更した場合はユーザー毎に異なる物になります。
    (例えば、 var_dump( get_user_meta(1) ); 等としてみるとわかりやすいでしょうか。)

    • この返信は7年、 9ヶ月前にColorful-life.が編集しました。
    フォーラム: テーマ
    返信が含まれるトピック: rssfeedのサムネイル画像のサイズ調整の仕方
    Colorful-life.

    (@colorfullifeinfo)

    こんばんは

    ご提示なさった rss_post_thumbnail 関数内の get_the_post_thumbnail() 関数でサイズを指定すると良いと思います
    第二引数で定義済みのサイズ名 または 幅と高さの配列を指定できます

    get_the_post_thumbnail()

    • この返信は7年、 9ヶ月前にColorful-life.が編集しました。
    フォーラム: 使い方全般
    返信が含まれるトピック: 権限別の分岐表示につきまして
    Colorful-life.

    (@colorfullifeinfo)

    @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

    フォーラム: 使い方全般
    返信が含まれるトピック: 権限別の分岐表示につきまして
    Colorful-life.

    (@colorfullifeinfo)

    こんにちは

    ログイン中のユーザーが現在表示している(グローバルの$postにセットされている)投稿の作成者かどうか、で表示を振り分けたい、という理解で良いでしょうか?

    であれば、下記の様な感じでどうでしょう?

    $user_id = get_current_user_id();
    if ( false === empty( $user_id ) && get_the_author_meta('ID') === $user_id ) {
    	// 作成者の場合
    } else {
    	// その他の場合(他のユーザー or 未ログイン)
    }

    get_current_user_id

    get_the_author_meta

    • この返信は7年、 9ヶ月前にColorful-life.が編集しました。理由: 補足追加
    フォーラム: 使い方全般
    返信が含まれるトピック: jetpackのsharing.cssを無効にしたいです
    Colorful-life.

    (@colorfullifeinfo)

    言葉足らずですみません、
    wp_dequeue_styleやwp_deregister_styleは非推奨では無いと思います

    あと、私自身もよく分かっていないのですが、非推奨なのは wp_print_styles を使用してcssやjsを登録する事であって、 wp_print_styles アクションフックの使用自体は問題無いのかもしれません…(自信なし)

    フォーラム: 使い方全般
    返信が含まれるトピック: カスタム投稿の公開状態を自動で変更したい
    Colorful-life.

    (@colorfullifeinfo)

    お疲れ様です

    ちなみにwp_cronを使う方法というのは、こんな感じで方向的にはあってるんでしょうか?

    方向的にはあっていると思うのですが、このままだと
    ・wp_cron実行時に目的の投稿IDを取得出来ない
    ・’blog_cron_event’アクションにフックしたスケジュールが1つしか登録出来ない
    様に見えますので、イベントに引数(投稿ID)を渡すようにするのはどうでしょう?

    https://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/wp_schedule_single_event#Schedule_an_event_one_hour_from_now_with_arguments

    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 )してからスケジュールを再登録する、などの処理が必要になるでしょうかね?

    フォーラム: 使い方全般
    返信が含まれるトピック: カスタム投稿の公開状態を自動で変更したい
    Colorful-life.

    (@colorfullifeinfo)

    こんばんは

    @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 として、年月日時分秒 とも二桁になるフォーマットで揃えてありますので問題無く比較できますが、タイムスタンプで比較した方が間違いがない様に思います

15件の返信を表示中 - 1 - 15件目 (全50件中)