むろ

特定のカテゴリに属する記事のみ、phpで抽出したい。

0
$DocRoot = $_SERVER['DOCUMENT_ROOT'];
require_once $DocRoot.'/cgi/mt/php/mt.php';
require_once $DocRoot.'/cgi/mt/php/lib/MTUtil.php';

$blog_id = 7;

$mt = MT::get_instance($blog_id, $DocRoot.'/cgi/mt/mt-config.cgi');
$ctx =& $mt->context();
$ctx->caching = FALSE;
$blog = $mt->db()->fetch_blog( $blog_id );
$ctx->stash( 'blog', $blog );
$ctx->stash( 'blog_id', $blog->id );
echo $blog->name;

$args = [
"blog_id" => $blog_id,
"limit" => 10,
];
$entries = $mt->db()->fetch_entries( $args );
var_dump($entries);

まず、上記のコードを使うことで、phpを使ってムーバブルタイプに登録されている記事の情報を取得することはできました。
そこに、特定のカテゴリに属するものだけ抽出するように検索条件を加えたいのですが、どのように記述すればいいのかわかりません。
また、取得した値をvar_dumpで確認しても、記事が属しているカテゴリのIDなどの情報が含まれていませんでした。
どうすれば解決するのでしょうか?

返信(3)

| 返信する
  • > 特定のカテゴリに属するものだけ抽出するように検索条件を加えたい
    mt/php/lib/block.mtentries.php (mtentriesタグのPHP実装)の116行目あたりで、$args['category_id'], $args['show_empty'] をセットして db()->fetch_entries($args) としているのが見えます。
    これと同じようにすればよいのではないかと考えます。

  • 返信ありがとうございます。
    すみません、ムーバブルタイプのバージョンを記載し忘れていました。
    現在使っているのは6.1.2であり、block.mtentries.phpを開いてみたところ、内容が違っていました。
    $args['category_id'], $args['show_empty']が検索しても見つかりませんでした。

    ムーバブルタイプのバージョンアップを行わないと、検索条件の追加を実現するのはできなさそうでしょうか?

  • すみません、解決いたしました。


    $args = [
    "blog_id" => $blog_id,
    "category" => "ほげほげ",
    "limit" => 10,
    "offset" => 50,
    ];
    $entries = $mt->db()->fetch_entries( $args );
    foreach($entries as $entry) {
    var_dump($entry->entry_title);
    }

    今回行いたかったのは、カテゴリの名前による検索だったのですが、上記のようなコードで実現できました。



    $args = [
    "blog_id" => $blog_id,
    "category_id" => "1234",
    ];

    カテゴリの名前ではなくIDで検索する場合はcategory_idですが、数値型ではなく文字列型として値を入れないと成功しませんでした。

返信する


カテゴリグループ

106 23

最新のトピック: test (2019年5月29日 sato)

フォーラムカテゴリー

21 76

最新のトピック: 公開終了日の取り消し (2013年10月18日 gsk)

408 1109

最新のトピック: CaptchaSourceImageBaseの場所をmt-static以外に指定したい (2021年2月18日 css)

OpenID対応しています OpenIDについて