サポート » 使い方全般 » 記事内の写真をクリックした際に画像一覧を表示したい

  • tabcuhi86

    (@tabcuhi86)


    記事に複数表示させている画像を画像の一覧表示をする処理をサーバーを移管させたら動かなくなりました。

    遷移は aa.html/attachment/th_hanabi?pg=466520&mv=0

    のようにhtmlの後ろに/attachment/~ につけています。

    リンクされたときにimage.phpで下記の条件分岐をして確認をします。

    <?php 
    if (!isset($_GET['pg']) && !isset($_GET['mv'])) {header('Location: /');exit();} $tg_page = $_GET['pg']; $mv = $_GET['mv']; $total_img = getTotalImg($tg_page, $mv);
    ?>

    イメージ取得には

    function getTotalImg($tg_page, $mv) {
    // $tg_page = $_GET['pg'];
    	// $mv = $_GET['mv'];
    	if (!strcmp($mv, 1)) {
    		$add = "";
    	} else {
    		$add = $tg_page;
    	}
    	$total_img[0] = catch_that_image_pg($tg_page, $add);
    	$total_img[1] = $tg_page;
    	$total_img[2] = $mv;
    	return $total_img;
    }
    
    function catch_that_image_pg($tg, $add) {
    	// ob_start();
    	// ob_end_clean();
    	$matches = serach_img(get_post($tg)->post_content, $add);
    	return $matches;
    }
    
    function serach_img($tg, $add) {
    	global $post, $posts;
    	preg_match_all("/<img.*?class\s*?=\s*?[\"|\'](.*?)[\"|\'].*?>/i", $tg, $matches);
    
    	if (strcmp($add, "")) {
    		array_unshift($matches[0], get_the_post_thumbnail($add));
    		array_unshift($matches[1], "wp-image-" . get_post_thumbnail_id($add));
    	}
    
    	foreach ($matches[0] as $key => $value) {
    		$tg = str_replace($value, sprintf("{imgtag%s}", $key), $tg);
    	}
    	$matches[2] = $tg;
    	foreach ($matches[1] as $key => $value) {
    		preg_match('/wp-image-([0-9]+)/i', $value, $matches2);
    		$matches[4][$key] = $value; //元クラス
    		$matches[1][$key] = $matches2[1]; //ID
    
    		$matches[0][$key] = check_img($matches[0][$key], $matches2[1]); //IMGタグ
    		$matches[0][$key] = preg_replace("/(class=\").*?(\".*?)/", "$1{$matches[4][$key]}$2", $matches[0][$key]); //ALT戻す
    		$matches[3][$key] = get_post($matches2[1])->post_excerpt; // キャプション取得
    	}
    
    	return $matches;
    }

    ヘルプの必要なページ: [リンクを見るにはログイン]

1件の返信を表示中 - 1 - 1件目 (全1件中)
  • nobita

    (@nobita)

    こんにちは

    記事に複数表示させている画像を画像の一覧表示をする処理をサーバーを移管させたら動かなくなりました。

    WordPress 6.4.1フレッシュインストールとかですか?

    フレッシュインストールだと、attachment ページは無効になっているので、そのあたりを確認してみてください

    https://make.wordpress.org/core/2023/10/16/changes-to-attachment-pages/

1件の返信を表示中 - 1 - 1件目 (全1件中)
  • このトピックに返信するにはログインが必要です。