フォーラムへの返信

15件の返信を表示中 - 16 - 30件目 (全297件中)
  • こんにちは。

    私は細かく権限を割り当てたことがないのですが、例えば Members というプラグインはかなり柔軟に権限の割り当てが出来ますので、一度お試しになってみてはいかがでしょうか。

    # 権限を割り当てる権限、が実現できるかどうかという答えにはなっていませんね、すみません。

    追記:
    権限グループの変更は、 edit_users が該当する権限になると思うので、自分自身のロールをいくつかの候補から切り替える処理については、 personal_options のフックで、edit_users できないけど edit_user は出来、特定の権限グループに設定されている場合にのみ、権限グループ(の一部)の選択フォームを表示させ、personal_profile_update にフックさせた関数で、ユーザー権限と送られたフィールドをチェックして、そのユーザーの権限グループを更新する処理を行えばよさそうですね。(その権限をクリアできればですが)

    フォーラム: 使い方全般
    返信が含まれるトピック: 日替わりで投稿をランダムに表示

    ああああ、これも違いますね、明日の宿題として寝ます。
    根本的に何かを勘違いしているようです。お騒がせしてすみません。
    解決されているようですので、そのままにしておいてください。

    フォーラム: 使い方全般
    返信が含まれるトピック: 日替わりで投稿をランダムに表示

    ※この投稿は何度も修正してます。

    何度もすみません、分かりました。色々と混乱してしまいました。

    そもそも WordPress 上ではタイムゾーンが UTC に設定されているので、一番初めのやり方で良かったんです。time() で取得した現在の時刻も、mktime( 23, 59, 59 ) で作成したキャッシュ期限の時刻も、いずれも UTC 時刻になるので、date() 等で確認した時に時差があっても当然なのでした。実際の時間と時差は出てしまいますが、今回キャッシュにあたって必要なのは現地時間ではなく、あくまでタイムゾーンが揃った2つの時刻の差分の秒数であり、UTC時刻であるこの2つから、差分は正しく取得できるんです。

    $transient_expiration = mktime( 23, 59, 59 ) - time();

    で、あとは、時差分の秒数を調整してやればいいわけです。

    $gmt_offset_seconds = get_option( 'gmt_offset' ) * 3600;

    こんな感じでしょうか。

    こんにちは。

    個別記事のURLを art/haiku/xxx のようにしたい、ということでよいですか?
    もし、register_post_type() を使ってカスタム投稿タイプを登録されているのでしたら、

    register_post_type( 'haiku', array(
        // 中略
        'rewrite' => array(
            'slug' => 'art/haiku',
            'with_front' => false
        ),
    ) );

    みたいな感じで rewrite の slug をどれも art/xxx というふうに設定できませんか?

    フォーラム: 使い方全般
    返信が含まれるトピック: FORMのactionのurlの書き方。

    こんにちは。

    私も調べることのできないコードのご質問に対してはなんとも言えませんが、 $flg == 1 に設定する処理の部分のコードを書いて頂ければ、ヒントくらいは思いつくかもしれません。(おそらく何かの値のチェックをした結果 $flg == 1 にセットしてますよね。そこの書き方に何か問題がありそうです)

    // どちらかというと WordPress 以外の質問になってきそうなので、本当は何も答えるべきじゃないのかもしれませんが、WordPress に関するってことでひとつ。

    フォーラム: 使い方全般
    返信が含まれるトピック: 403 Forbiddenエラーが解消できない

    1点原因仮説なのですが、
    さくらインターネットの仕様で初期ドメイン(≠設定したいドメイン)の
    サブディレクトリ(初期ドメイン/wp)にWPのインストールが強制的に行われます。

    ここを何とかして設定したいドメインのサブディレクトリへのWPインストールを行わないといけない等ありますでしょうか?

    ちなみに、インストール後はWPの「設定」→「一般設定」から
    「WordPress アドレス (URL)」と「サイトアドレス (URL)」の両方を、初期ドメイン/wp から設定したいドメインのURL(/wp なし)に設定変更しています。何かのご参考になればと思い念のための追記でした。

    仮説というか、参考というか、ビンゴだと思います。

    クイックインストール機能でインストールされたのでしょうか?

    さくらインターネットのスタンダードプランですと、自動インストール時にドメインとインストール先のディレクトリを選択(入力)できますよ。(さくらインターネットの公式マニュアルの当該コンテンツ、 STEP3の手順5をご参照ください)

    私の所有するアカウントでも問題なくインストール出来たのを今確認しました。

    今回のケースですと、管理画面上で URL を変更したのみで、ファイルを移動されていないのだと思われます。設定したいドメインのディレクトリ内に index.php 他 WordPress の構成ファイルがインストールされていなければ、index.php はそこに存在しないのですから、当然うまくいきません…。

    もし、まだインストールしただけでしたら、一度WordPress 関連のすべてのファイルやデータベースは削除して、初めからやり直されたほうがややこしくなくて良いかもしれませんね。

    それでもうまく行かなければまた状況をお知らせください。

    フォーラム: 使い方全般
    返信が含まれるトピック: ブログ記事の画像が、反映されません。

    画像がない:
    私も何が原因かわかっていませんが……ソース経由でメディアのアップロードディレクトリにアクセスさせて頂いたところ、画像がアップロードディレクトリの中に存在しないようです。

    • どこかのタイミングですべて別の場所に移動したか削除していませんか?
    • または、アップロード時に何かエラーメッセージは出ていませんでしたか?
    • アップロードディレクトリには適切なパーミッションが設定されていますか?
      ※パーミッションについては Codex を見ながら調べてみてください。

    サイズが違う:
    WordPress 標準の中サイズについては、アップロードされた画像の横幅または高さのどちらか大きい方を基準にリサイズされるため、はみ出した部分がトリミングされることはありません。

    アップロードする前に同じ縦横比の画像をアップロードしておくのがいいと思います。それが難しいのであれば他にも代替方法はありますが、自前だと結構手間がかかりますので割愛します。画像のサイズを管理できるプラグインがないか探してみてはいかがでしょう。

    こんにちは。

    WordPress のデータを引っ張ってきたいなら、wp-load.php を読み込んだ方がいいと思います。ただ、いずれにしても WordPress の標準以外の場所では Cookie の制限があってログインしていない状態となり、ログインしていないと機能しないタイプのプラグインは使えません。

    フォーラム: 使い方全般
    返信が含まれるトピック: 管理画面が白くなり編集ができません。

    本件、解決されたようで何よりです。

    スレッドの右カラムにある「このスレッドは」のところを、「解決済み」として頂けますか?

    フォーラム: 使い方全般
    返信が含まれるトピック: 日替わりで投稿をランダムに表示

    投稿オブジェクトそのものをキャッシュするのではなく、投稿IDのみを取り出した配列を作ってキャッシュしておけば良さそうです。

    それから、 time() の時間差の件、失礼しました。WordPress 内部で時刻を扱うタイムゾーンが UTC なので、現地時間は date_i18n( 'U' ) で取り出すのがシンプルなようです。

    $random_daily_post_ids = get_transient( 'random_daily_post_ids' );
    
    if ( false === $random_daily_post_ids ) {
        $transient_expiration  = mktime( 23, 59, 59 ) - date_i18n( 'U' );
        $random_daily_posts    = get_posts( array( 'posts_per_page' => 10, 'orderby' => 'rand' ) );
        $random_daily_post_ids = array_map( function($p){ return $p->ID; }, $random_daily_posts );
        set_transient( 'random_daily_post_ids', $random_daily_post_ids, $transient_expiration );
    }
    
    if ( !empty( $random_daily_post_ids ) ) {
        echo '<ul>' . "\n";
        foreach ( $random_daily_post_ids as $post_id ) {
            $post = get_post( $post_id );
            if ( $post ) {
                setup_postdata( $post );
                echo '<li><a href="' . esc_attr( get_permalink() ) . '">' . esc_html( get_the_title() ) . '</a></li>' . "\n";
            }
        }
        echo '</ul>' . "\n";
    }

    それから、ピックアップした投稿を日付順に表示する(というか、してもよい)場合は、ループを更にシンプルにできますね。

    if ( !empty( $random_daily_post_ids ) ) {
        $random_daily_posts = get_posts( array( 'include' => $random_daily_post_ids, 'posts_per_page' => -1 ) );
        if ( !empty( $random_daily_posts ) ) {
            echo '<ul>' . "\n";
            foreach ( $random_daily_posts as $post ) {
                setup_postdata( $post );
                echo '<li><a href="' . esc_attr( get_permalink() ) . '">' . esc_html( get_the_title() ) . '</a></li>' . "\n";
            }
            echo '</ul>' . "\n";
            wp_reset_postdata();
        }
    }

    こんな感じでいかがでしょうか。

    スレッド開始 mizube

    (@mizube)

    jim912さん、最後の最後でお名前を間違えてしまっていました、申し訳ございません……。

    フォーラム: 使い方全般
    返信が含まれるトピック: the_content時のbrタグについて

    こんにちは。

    テーマによると思いますよ。私はそのような状況に遭遇したことはありません。

    • archive.php で the_content(); が使われているかどうか
    • the_content(); にアーカイブページで br を削除するようなフィルタが適用されていないか
    • css のアーカイブページのスタイル指定で br {display: none;} のような指定がないか(ソース上では br が出力されている場合)
    • 使われているテンプレートが本当に archive.php かどうか(category.php 等)

    などを確認してみてください。

    フィルタを確認するには、

    if ( is_user_logged_in() ) {
    echo '<pre>';
    var_dump( $GLOBALS["wp_filter"]["the_content"] );
    echo '</pre>';
    }

    などで確認するとよいと思います。

    フォーラム: 使い方全般
    返信が含まれるトピック: 管理画面が白くなり編集ができません。

    こんにちは。

    フォーラムの 予期しない出力により Cookies がブロックされました。 のスレッドが参考になりませんか?

    フォーラム: 使い方全般
    返信が含まれるトピック: 403 Forbiddenエラーが解消できない

    こんにちは。

    WordPress をインストールしたサイトのルートディレクトリに index.php は存在していますか?

    WordPress がサブディレクトリにインストールされていて、管理ページ > 設定 > 一般設定 の「サイトアドレス」をルートディレクトリの URL に変更したあと、 index.php をルートディレクトリに準備しておかないと、そのような事が起こる可能性はあります。

    WordPress Codex 日本語版のWordPress を専用ディレクトリに配置するを参考にしてみてください。

    スレッド開始 mizube

    (@mizube)

    jim912 さん、回答ありがとうございます。

    教えて頂いたコードを確認しました、確かに return されていました。コードを遡ってみましたが、 $postarr がフィルタを通過しないデータなので、POST 後にこの部分のチェックを安全かつ適切に回避する手段はなさそうですね。とにかくスッキリしました!

    これは編集ページのどこかのフックで、ページテンプレートが存在しないのに _wp_page_template が設定されている場合に page_template の隠しフィールドで default 値を送ってやるようにすればよさそう?

    ところで、本家 Codex の wp_insert_post() のページにも、

    ‘page_template’: If post_type is ‘page’, will attempt to set the page template. On failure, the function will return either a WP_Error or 0, and stop before the final actions are called.

    とありました。ちゃんと読めよって話ですね…。
    nobitaさん、gim912さん、ありがとうございました。
    解決済みと致します。

15件の返信を表示中 - 16 - 30件目 (全297件中)