WordPress 投稿記事の最初の画像のサムネイルを取得して表示させる-2022年版

Filed under: functions.php,wordpress — kdcs @ 2022年1月18日 火曜日

wordpress5.7.3で投稿記事の最初の画像のサムネイルを取得して表示させる動作が不安定になり、表示出来たりできなかったりしたため、過去のコードを見直した。

preg_match_allの記述を変更

変更前

preg_match_all('/<img.+?class=".+?wp-image-(.+).*?".*?>/i', $post->post_content, $matches);

変更後

preg_match_all( '/<img.+class=[\'"].*wp-image-([0-9]+).*[\'"].*>/i', $post->post_content, $matches );

function.phpにこちらを記述する(全体)
記事内に画像が無い場合の代替画像「default1.png」

/* ---------------------------------------------------------------------------------------
   ◆◆◆ 投稿記事の最初の画像のサムネイル ?php echo my_first_image_thumb(); ? で表示 ####
------------------------------------------------------------------------------------------*/
function my_first_image_thumb(){
  global $post, $posts;
  $img_url = '';
  //デフォルト画像の設定
  $defaute_url = get_stylesheet_directory_uri(). '/images/default1.png';

  //最初の画像を取得してIDを取得
  preg_match_all( '/<img.+class=[\'"].*wp-image-([0-9]+).*[\'"].*>/i', $post->post_content, $matches );
  if(isset($matches[1][0])){
    $img_id = ($matches[1][0]);
  }

  //最初の画像があれば分岐
  if(!empty($img_id)){
    //最初の画像IDからサムネイルのパスを取得してセット
    $img_url = my_wp_get_attachment_medium_url($img_id);
  } else {
    //最初の画像がない場合、デフォルト画像のパスをセット
    $img_url = $defaute_url;
  }
  return $img_url;
}

  //画像IDからサムネイルサイズのパスを取得(画像サイズ変更可能)
  //画像サイズ (thumbnail, medium, large, full or custom size)
function my_wp_get_attachment_medium_url( $id ) {
  $thumbnail_array = image_downsize( $id, 'thumbnail' );
  $thumbnail_path = $thumbnail_array[0];
  return $thumbnail_path;
}

ページ内の表示させたい部分に以下を記述

<img src="<?php echo my_first_image_thumb(); ?/>">

(続きを読む…)

Contact Form7で送信後に送信完了ページを表示させる

Filed under: contactform7,functions.php — kdcs @ 2021年11月30日 火曜日

メールフォームの送信ボタンをクリックした時、正常に送信されたら送信完了ページを表示したい場合

function.phpに記述する方法

$contact = 'contact';
$thanks = 'thanks';

//お問い合わせフォームの送信後にサンクスページへ飛ばす
add_action( 'wp_footer', 'redirect_thanks_page' );
function redirect_thanks_page() {
  global $contact;
  global $thanks;

  if( is_page($contact)  ) {
  ?>
  <script>
    document.addEventListener( 'wpcf7mailsent', function( event ) {
      location = '<?php echo home_url('/'.$thanks); ?>'; // 遷移先のURL
    }, false );
  </script>
  <?php }
}

html内に記述する方法

<script>document.addEventListener('wpcf7mailsent',function(event){ location='//example.com/thanks/'; },false);</script>

WordPress 投稿一覧で項目の並び順を変える

Filed under: functions.php,wordpress — kdcs @ 2021年10月9日 土曜日

投稿一覧の並び順を変えたい場合、function.phpに以下を記述

//投稿一覧の並び順を変更する--------------------------------------------------------------
function sort_posts_columns( $columns ) {
  $columns = array(
    'cb'         => '<input type="checkbox" />',
    'title'      => 'タイトル',
    'author'     => '作成者',
    'categories' => 'カテゴリー',
    'tags'       => 'タグ',
    'comments'   => '<div class="comment-grey-bubble" title="コメント"></div>',
    'date'       => '日時'
  );
  return $columns;
}
add_filter( 'manage_posts_columns', 'sort_posts_columns' );

※カスタム投稿タイプの場合(例:itemsというスラッグ)
 カスタム投稿タイプは専用のカテゴリーやタグのスラッグが作られるので、それに合わせる
 add_filter()内のmanage_~もカスタム投稿タイプに合わせる

function sort_posts_columns( $columns ) {
  $columns = array(
    'cb'         => '<input type="checkbox" />',
    'title'      => 'タイトル',
    'author'     => '作成者',
    'items_category' => 'カテゴリー',
    'tags'       => 'タグ',
    'comments'   => '<div class="comment-grey-bubble" title="コメント"></div>',
    'date'       => '日時'
  );
  return $columns;
}
add_filter( 'manage_items_posts_columns', 'sort_posts_columns' );

※重要
なお、デフォルトの投稿タイプにカスタム投稿タイプを追加する場合、
function名が重複しないようにナンバーを付けるか名前を変える

WordPress 自動アップデート停止

Filed under: wordpress — kdcs @ 2021年9月10日 金曜日

WordPressの自動アップデート機能はバージョン5.5から
停止させるにはwp-config.phpへ下記のの記述が必要。
記述場所はデバッグモードの下でよい。

//全てのバージョンアップが無効
define( 'AUTOMATIC_UPDATER_DISABLED', false );
//マイナーアップデートのみ有効
define( 'AUTOMATIC_UPDATER_DISABLED', 'minor' );

trueでバージョンアップが有効
falseでバージョンアップが無効
minorでセキュリティリリースとメンテナンスリリースのみ有効
※minorを指定する場合はクオーテーションで囲む

【重要】
新規インストール時に勝手にアップデートするのを防ぐためには、あらかじめ「wp-config-sample.php」に
記述しておくと自動的に作成される「wp-config.php」にも初めから記述され、勝手に最新版にアップデートされない。

WordPress アップロード画像自動生成カスタマイズ

Filed under: functions.php,wordpress — kdcs @ 2021年8月3日 火曜日

画像サイズを追加する「add_image_size()」関数を使用

add_image_size ( $name, $width, $height, $crop );

$name = 画像サイズ名
$width = 横幅(px)
$height = 縦幅(px)
$crop = トリミング(する=true しない=false)

トリミング位置(基準点)を指定する場合
array( ‘center’, ‘top’ ) 中央上部
array( ‘center’, ‘bottom’ ) 中央下部
array( ‘left’, ‘top’ ) 左上部
など・・・

サイト内検索

カテゴリー

最近の投稿

↑上に戻る