サポート » 使い方全般 » 投稿内容を更新すると内容が変わる

  • 解決済 hamadamks3389

    (@hamadamks3389)



    質問です。
    よろしくお願い致します。

    【発生過程】
    1、記事をテキストベースで投稿する
    2、更新ボタンを押下後、記事内容が変わりうまく記事がHPで表示されなくなる

    例えば↓のようなPHPを書くと
    <?php
    switch_to_blog(4);
    $post_id = XXXXXXX; //数字は記事のIDを入れてください
    $post = get_post($post_id, ‘OBJECT’, ‘raw’); //指定した記事のIDの情報を取得
    $post_include = apply_filters( ‘the_content’,$post->post_content); //記事の本文をフィルターフックで整形してます
    ?>

    ごっそり記述がなくなってしまいます。

    私のアカウントでは、このような現象は起きず
    他の方のアカウントで発生する現象です。
    (2アカウントで同じ現象が発生)(PCもそれぞれ違うので確認)

    今までこのような現象に遭遇した事がなくお手上げ状態です。
    ご教示の程よろしくお願い致します。

    • このトピックは hamadamks3389が5 ヶ月前に変更しました。
8件の返信を表示中 - 1 - 8件目 (全8件中)
  • oisit

    (@oisit)

    何が起こってるのかはわかりませんがswitch_to_blogを検索するとwordpressのマルチサイトの記述等がヒットしますね。

    hamadamks3389

    (@hamadamks3389)

    oisit様、ご回答ありがとうございます。

    はい、マルチサイトで投稿した記事を丸々持ってくるようにしています。
    「$post_id = XXXXXXX; //数字は記事のIDを入れてください」
    のXXXXXXXにマルチサイトの記事IDを入れて・・・・

    私のアカウントでは上手くいくのに、他二人のアカウントで更新すると
    記述が消えるのが本当に謎で・・・

    私のアカウントは特権管理者で、他二人は管理者権限になっているのですが
    その影響とかあるんでしょうか?

    • この返信は5 ヶ月前に  hamadamks3389 さんが編集しました。
    モデレーター Okamoto Hidetaka

    (@hideokamoto)

    記載されているコードはテーマ・プラグインどちらに記載されているのでしょうか?

    hamadamks3389

    (@hamadamks3389)

    Okamoto Hidetaka 様
    ありがとうございます。

    コードは直接、投稿記事に記載しています。
    その投稿記事の更新ボタンを押すと記述が消えてしまう現象となります・・・・

    ishitaka

    (@ishitaka)

    こんにちは

    HTML フィルター機能により除去されたのだと思います。
    このフィルターは、unfiltered_html 権限をもつユーザーでは無効化されます。
    マルチサイトでは、特権管理者のみが unfiltered_html 権限をもちます。
    権限については公式ドキュメントの英語版(日本語版では記載は漏れているようです)をご覧ください。
    https://codex.wordpress.org/Roles_and_Capabilities

    hamadamks3389

    (@hamadamks3389)

    ishitaka 様

    回答頂きありがとうございます。

    権限の問題だったのですね・・・ありがとうございます!
    unfiltered_html 権限を特権管理者以外にも振り分けする事は可能でしょうか?

    //全てのユーザー権限でHTMLフィルターを無効にする
    function edit_author_unfiltered_html(){
    global $wp_roles;
    $wp_roles->add_cap( ‘author’, ‘unfiltered_html’ );
    }
    add_action( ‘admin_init’, ‘edit_author_unfiltered_html’ );

    調べるとこう言う(↑)で回避出来るとはあったのですが・・・

    ishitaka

    (@ishitaka)

    下記のようなコードで、管理者に unfiltered_html 権限を付与することができると思います。
    なお、信頼できないユーザーや初心者に対してこの権限を付与しないでください。
    間違ったコード(悪意のあるコード)を投稿されるかもしれません。

    function my_map_meta_cap( $caps, $cap, $user_id ) {
    	if ( $cap == 'unfiltered_html' ) {
    		if ( user_can( $user_id, 'administrator' ) ) {
    			$caps = array( 'unfiltered_html' );
    		}
    	}
    	return $caps;
    }
    
    add_filter( 'map_meta_cap', 'my_map_meta_cap', 1, 3 );
    hamadamks3389

    (@hamadamks3389)

    ishitaka 様

    コードのご教示、誠にありがとうございます。
    また付与に対してのご注意も頂きありがとうございました!

    早速、チャレンジしてみたいと思います!

    oisit様、Okamoto Hidetaka 様
    貴重なお時間を割いて頂き、誠にありがとうございました。

    • この返信は5 ヶ月前に  hamadamks3389 さんが編集しました。
    • この返信は5 ヶ月前に  hamadamks3389 さんが編集しました。
8件の返信を表示中 - 1 - 8件目 (全8件中)
  • このトピックに返信するにはログインが必要です。