フォーラムへの返信

15件の返信を表示中 - 256 - 270件目 (全293件中)
  • どうにもなりませんか…

    $args = array(
        'category__and' => array($category_id1, $category_id2, $category_id3),
        'numberposts' => 10
    );
    $myposts = get_posts($args);

    です。これならスパム判定されない?

    おっと、そうでしたか。

    $args = array(
        'category__and' => array($category_id1, $category_id2, $category_id3),
        'numberposts' => 10
    );
    $myposts = get_posts($args);

    Codex の get_posts() と同時に、

    関数リファレンス/WP Query

    を参照すると、わかりますよん。

    フォーラム: 使い方全般
    返信が含まれるトピック: 別ページからのアンカーリンクがずれる

    常に上手く飛ばないわけではなく、うまく飛ぶときもあり、動作が不安定といった感じです。

    ということなので、ちゃんとなっているのだと思いますが、念のため、

    https://example#a1、https://example#a2などそれぞれのリンクにアクセスをすると

    これ、リンクの指定あってますか?

    フォーラム: プラグイン
    返信が含まれるトピック: 表示期限が過ぎた記事を移動したい

    どちらのプラグインも使っていないので、想像ですが…

    You must assign a heirarchical(?) taxonomy to this post type to use this feature

    「この投稿タイプには階層構造を持ったタクソノミーを指定しないと、この機能は使えません」

    デフォルトのカテゴリは ‘hierarchical taxonomy’ ですから、問題ないはずなので、カスタム投稿タイプの定義で、デフォルトのカテゴリが使えないようになっているのではないでしょうか? 投稿タイプの設定で、’taxonomies’ を指定するところがあるはずなので、’category’ を指定してみるとどうでしょう。

    get_posts() のパラメータを、

    'category__and' => array($category_id1, $category_id2, $category_id3)

    とすればよいではないでしょうか。

    フォーラム: 使い方全般
    返信が含まれるトピック: 検索結果をテンプレート別に作りたい

    条件:

    1. 英語がデフォルトである。
    2. 日本語ページでの検索と英語ページでのそれを判定するのは、ページタイトルや本文、スラッグなどしかない。
    3. 日本語メニューやタイトルなどが出せればよい。

    2. から考えると、検索ボタンがクリックされた後は、英語か日本語かの情報がどこにもないですね。

    これはちょっと面倒かも、です。REFERER を調べるとしても、日本語ページが複数あったら、そのデータを保持しておく必要があります。この場合、データベースから条件を指定して動的に日本語ページだけのスラッグを得る手段はないでしょう。もちろん、スラッグの文字を判別すればできなくはないですが、日本語ページで products のようなスラッグが使われたら意味がありませんし、いちいちアクセスするのはもっと嫌ですよね。

    とりあえず、こんなので、動きますかねぇ? 完全一致で判定なので、使われているスラッグを正確に指定する必要があります(日本語ページのスラッグが全部 -ja とかなってたりしませんかね?)。テンプレートが見つからない場合の処理は省略しました。

    固定ページが何十ページもあったり、投稿もあったりするという条件なら、設計を見直した方がいいと思いますが… サンプルコードを利用しましたけど、ここでは判定条件が全てなので、検索テンプレートで場合分けをしてもいいと思います。自分では試してません。

    add_filter('template_include', 'replace_search_template', 99);
    function replace_search_template($template) {
        $ja_slugs = array('日本語ページスラッグ1', '日本語ページスラッグ2', ...);
    
        $referer = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '';
        if ($referer == '') return $template;
    
        $referer = rtrim($referer, '/');
        $splitted_arr = preg_split('/\\//', $referer, -1);
        $from_page_slug = array_pop($splitted_arr);
    
        if (is_search() && in_array(urldecode($from_page_slug), $ja_slugs)) {
            $new_template = locate_template( array('日本語検索テンプレート'));
            return $new_template;
        }
    
        return $template;
    }

    /* ストラトは娘のを借りて弾いてます 🙂 */

    フォーラム: 使い方全般
    返信が含まれるトピック: 検索結果をテンプレート別に作りたい

    3つほど、疑問な点があります。

    1. サイトを訪れたユーザを英語ページと日本語ページに振り分けると思うのですが、これはどのようにしていますか? つまり、英語を読みたい訪問者と日本語を読みたい訪問者、それぞれをどのように判別しているのでしょう?
    2. 英語ページで検索した場合と、日本語ページで検索した場合とでは、検索結果に違いが出ますか? それとも、同じ単語を検索したら、同じ結果になりますか?
    3. 検索テンプレートを分ける目的は何ですか?

    場合によっては、上のコードサンプルは使わなくてもいいかもしれませんね。

    フォーラム: 使い方全般
    返信が含まれるトピック: 検索結果をテンプレート別に作りたい

    やはりそうですか。

    固定ページということで、プラグインで言語を分けているのではないと想像したのですが、各投稿に言語データを持たせていたりするんでしょうか? あまり言えない部分もあるでしょうが、状況がわかれば、またお手伝いできるかもしれません。

    フォーラム: 使い方全般
    返信が含まれるトピック: サイトtopに複数のwordpressから新着を表示させたい

    データベースがどう使われているかにもよりますが、この方法でやるなら、wpdbクラスのインスタンスを別に用意しなければならないのではないでしょうか。

    フォーラム: プラグイン
    返信が含まれるトピック: 日本語と SEOプラグイン問題

    When you write a title name in Chinese characters and Japanese characters, you don’t have to write each word separated with a space. If シンガポール治安情報 is the title of your page, I recommend you to write them just like one word in English.

    URLs and Permalinks are the same as above. Take the example like this:

    http://example.com/シンガポール治安情報

    This URL, aka a slug, is a perfectly valid one. If you write this “シンガポール治安情報” separated with a space like “シンガポール 治安情報”, WordPress will replace this space with a hyphen.

    As for the description, if you mean a site description on WordPress site, you don’t have to separate words with spaces. It is a short phrase or one complete sentence to describe the page, which doesn’t require you to write that way.

    If you mean key words relevant to the page, you better write each word separated with a space. We, Japanese, will split your example into three words: シンガポール(Singapore), 治安(public order or security), 情報(information) as you write them in your post. If you use these three words as key words to your page, no problem, I guess. But if your site provides the information of public order in Singapore, you’ll never publish “information” and “public order” respectively, but “information about public order”. When this is the case, we don’t think “情報” or “治安” is a singular and independent key word, rather think as if “情報” and “治安” were one compound word. And we’ll write シンガポール(one word), 治安情報(another word) as key words. It heavily depends on the semantics, not on dictionaries.

    When manipulating Japanese, some search engines use n-gram, and others part of speech separation, and others I don’t know what algorithm. They split Japanese phrases and sentences as they like and we have no way to control it. So I recommend you should only separate key words.

    If English is not your language, please forgive me. But I’m not good at Japanese in latin alphabet. Good luck.

    フォーラム: 使い方全般
    返信が含まれるトピック: 画像のアップロード先変更について

    とりあえず、メディアライブラリにサムネールを表示したいという目的なら、

    phpMyAdminで↓のUPDATE文を年月を変えて4回実行すれば大丈夫ですか?

    これで十分と思いましたが、phpMyAdmin を使うなら、$wpdb->postmeta は使えません。というか、もともとの文が間違ってますね。$wpdb->wp_postmeta では、PHP を使っても動作しません。

    $wpdb->postmeta は、WordPress によって、prefix_postmeta に変換されます。prefix は、wp-config.php で指定した「テーブルの接頭辞」です。デフォルトでは、’wp_’ となっていたはずです。ですから、$wpdb->wp_postmeta は、ありえないテーブルを指すことになって、

    そんなプロパティはないよ

    と言われてしまいます。正しくは、$wpdb->postmeta です。phpMyAdmin で使うなら、wp_postmeta です(デフォルト)。

    また、よく考えると、確かに、REPLACE の中で REGEXP は使えませんが、今回の場合、置換するデータは、必ず yyyy/dd/ となっているのが保証されているので、SUBSTRING を使って最初の8文字を削除すればよいわけです。したがって、

    UPDATE wp_postmeta SET meta_value = SUBSTRING(meta_value, 9) WHERE meta_key = '_wp_attached_file';

    とすれば、1回のクエリで終了できます。文字ではなくて、文字数に注目すれば、簡単なことでした。

    wp_postsテーブルの「guid」と言う項目を書き変える文は以下であっていますでしょうか?

    UPDATE $wpdb->wp_posts SET guid = REPLACE(guid, '2014/01/', '') WHERE ...

    やはり上に述べた理由で、$wpdb->wp_posts は誤りです。また、該当のデータ以外に ‘2014/01/’ といった文字列はありえないという保証があれば、WHERE 句なしでも成功します。そうでなければ、同じ文字列を持ったデータが全て書き変わります。

    UPDATE wp_posts SET guid = REPLACE(guid, 'wp-content/uploads/2014/01/', 'wp-content/uploads/') WHERE post_type='attachment';

    置換文字列をこれくらいにしておくと、安全かもしれません。アイキャッチとして使ったイメージは、post_type が attachment、post_status は inherit になっています。なお、ここでは、データが、

    http://example.com/wp-conetnt/uploads/2014/01/hoge.jpg

    というようになっていて、wp-content の前がわからないので、、最初の方法ではなくて REPLACE を使いました。これは4回実行する必要があります。最初の方法が使えるなら、1回で済みます。

    kjmtshさんの方法でする場合

    状況がわかると、あまりおすすめではありませんが… 実は、’_wp_attached_file’ を書き換えてみても、イメージ編集画面で右上に出るイメージの情報の url が書き変わりません。調べてみると、postmeta テーブルに、’_wp_attachment_metadata’ というのがあって、イメージ情報がシリアライズされて入っていることがわかりました。

    この ‘_wp_attachment_metadata’ を、phpMyAdmin で書き換えてはいけません

    ‘_wp_attachment_metadata’がそのままで我慢できるなら、上の5回(または2回)のクエリで十分です。

    スクリプトファイルはこれも変更するようになっています。エディタに張り付けて、適当な名前で保存してください。拡張子は .php にしてください。WordPress が動くサーバなら、それで間違いありません。日本語は入れていませんので、ASCII でも UTF-8 でも大丈夫。あとは説明の通りです。保証はしませんので、よくわからない場合は、無理に使う必要はありません。

    メンテナンスモードは、WordPress のサイトを、という意味です。データベースにアクセスする時間が長かったので、そう書きました。が、上の内容をもとに書き換えたので、たぶん、100倍以上速くなっているはずです。タイムリミットの指定も削除しました。メンテナンスモードは必要ないかもしれません。もし使うなら、スクリプトの最初のコメントの中にコードを入れておきましたので、それを functions.php に書いてください。テンプレートで get_header() を使っているページなら、全てメンテナンスモードになります。wp_head() しか使っていないページには効力がありませんが。作業が終わったら、そのコードを削除すると、もとに戻ります。

    なお、スクリプトを使うなら、新しいものをお使いください。最初のものと区別するために、ファイルの先頭で、revised version としてあります。

    フォーラム: その他
    返信が含まれるトピック: フォーラムへの投稿がログインしないと見えません
    トピック投稿者 kjmtsh

    (@kjmtsh)

    ありがとうございます。

    フォーラム: 使い方全般
    返信が含まれるトピック: 検索結果をテンプレート別に作りたい

    あーっと、スパム扱いされてるみたいですね。Codex へのリンクが2つあるだけなのですが…

    ログインすると、見えますか?

    フォーラム: 使い方全般
    返信が含まれるトピック: 検索結果をテンプレート別に作りたい

    はい、その通りです。デフォルトで使われるテンプレートを変更します。このフィルタ自体の条件は、「WP_USE_THEMES 定数が true になっている」ということのなので、コアをいじっていない限り動作します。

    併せて、

    テンプレート階層(日本語)

    および、

    Template Hierarchy(英語、最後にExampleがあります)

    をご覧になると、理解しながら進めることができると思います。Good luck.

15件の返信を表示中 - 256 - 270件目 (全293件中)