phpエラー(function.phpのカスタムポスト追加の記述で)

Filed under: functions.php,php,wordpress — kdcs @ 2019年8月9日 金曜日

WordPress カスタムポストのパーマリンク(アンカータグ)に
「Notice: Only variables should be assigned by reference in」というエラーが出て
カスタムポストの記事にアクセスできないという状況。

php5からphp7への移行で出るっぽいという記事があったが、エラーが出た環境はphp5.6
何故か他のWordPressサイトではエラーは出ない・・・

修正箇所は、function.php内、カスタム投稿タイプ「○○○」のパーマリンク設定
参照渡しで値を配列に渡している部分

$post = &get_post($id);

これを以下に修正

$post_tmp = get_post($id);
$post = $post_tmp;

さらに、function.php内、一覧にカスタムフィールドの「お名前」を追加

echo attribute_escape($stitle);

attribute_escapeは非推奨とのことでesc_attr()を使用

echo esc_attr($stitle);

※追記 2021年10月9日
php 7.4環境でWordPress 5.7.2を使ったサイト制作時(眼鏡店)にデバッグモードで上記の状態発生
修正の記述で解決。

Contact Form 7 日本語で入力してください(海外からのスパムメール対策)

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

日本語で入力しないとエラーになる海外からのスパムメール対策

function.phpに記述する
下記の例はタイトル(your-subject)に日本語が含まれない場合にエラーとする

function wpcf7_validate_spam_message( $result, $tag ) {
  $value = str_replace(array(PHP_EOL,' '), '', esc_attr($_POST['your-subject']));
  if (!empty($value)) {
    if (preg_match('/^[!-~]+$/', $value)) {
      $result['valid'] = false;
      $result['reason'] = array('your-subject' => '日本語で入力してください');
    }
  }
  return $result;
}
add_filter( 'wpcf7_validate', 'wpcf7_validate_spam_message', 10, 2 );

WordPress canonicalタグで「正規のURL」を出力する

Filed under: wordpress — kdcs @ 2019年3月20日 水曜日

canonicalタグは重複するページや類似ページなどコピーコンテンツとしてgoogleからペナルティを受けないために記述するもの

<link rel="canonical" href="「正規のURL」">

サイトをSSL化(httpからhttps)した場合にも有効
header.phpのheadタグ内に入れる
※is_front_page=トップページ is_home=投稿ページ(投稿ページのスラッグ入れる)

<?php if ( is_front_page() ) {
$canonical_url=get_bloginfo('url');
}
elseif ( is_home() ) {
$canonical_url=get_bloginfo('url').'/{ページスラッグ}';
}
elseif (is_category()) {
$canonical_url=get_category_link(get_query_var('cat'));
}
elseif (is_page()||is_single()) {
$canonical_url=get_permalink();
}
$paged = get_query_var( 'paged', 1 );
$page = get_query_var( 'page', 1 );
if ( $paged >= 2 || $page >= 2) {
$canonical_url=$canonical_url.'/page/'.max( $paged, $page );
}
?>
<?php if(!(is_404())):?>
<link rel="canonical" href="<?php echo $canonical_url; ?>">
<?php endif;?>

※WordPressデバッグモードで
「Notice: Undefined variable」が出るため13、14行$paged =と$page =を追加

(続きを読む…)

EWWW Image Optimizer-画像のExifデータを削除する

Filed under: wordpressプラグイン — kdcs @ 2019年3月18日 月曜日

WordPressへの画像アップロード時にExifデータを削除するプラグイン
データ内容としては、撮影端末情報や撮影時のカメラデータ、その他GPSデータなどを削除するもの

設定に関してはBasicとConvertタブの内容のみ

Basicタブ
Remove Metadataにチェックが入っていること

Convertタブ
コンバージョンリンクを非表示にチェックを入れる

このプラグインは本来アップロード画像のリサイズも行えるが、リサイズに別のプラグインを使用している場合(Imsanity)そちらを優先してくれる

Twitterの自作シェアボタンに使う記述-2019年3月

Filed under: php,Twitter — kdcs @ 2019年3月16日 土曜日

Twitterのシェアボタンへの記述が旧式?の場合、IEでボタンをクリックすると404エラーになる
※firefoxやChrome、windows7のie11では問題ない

IEやEdgeでも動作させるための記述(WordPressにてliタグ使用)

<li class="sns_btnInner"><a class="twitter" href="https://twitter.com/intent/tweet?url=<?php echo urlencode(get_permalink()); ?>&amp;url=<?php echo urlencode(get_permalink()); ?>&amp;text=<?php echo urlencode(the_title("","",0)); ?>&amp;hashtags=<?php echo urlencode("ハッシュタグ1,ハッシュタグ2"); ?>" target="_blank" rel="noopener noreferrer" title="Twitterで共有"><i class="fa icon-twitter"></i>Twitter</a></li>

基本 https://twitter.com/intent/tweet? からurl text hashtags を&でつなぐ
url=パーマリンク
text=ページタイトル
hashtags=ハッシュタグ(複数の時は,で区切る)

※それぞれurlencodeが必要

サイト内検索

カテゴリー

最近の投稿

↑上に戻る