複雑なテーマでfunctionが書き換えられない時
phpコードをウイジェットに追加する方法

前回、固定ページ(他ウイジェットの「テキストメニュー」にも書き込み可能)に、phpを書き込む際は
function.phpに、ショートコードの有効化する記述をし
任意の ショートコード名php内に php及びhtml記述して、その部分を[ショートコード]挿入で表示しました。

ワードプレス固定ページに特定のカテゴリー(名・スラグ名)の記事を取得し表示する
ワードプレスでできそうで、カスタマイズしないとできないこと。 固定ページにphpって直接書き込めないの~~~っ。 トップ...

今回は、
サイドメニューから特定カテゴリー記事の一覧(日付とタイトル)を表示するために
ウイジェットを使ったサイドメニューに、phpを直接書きこめるようにプラグインを追加しました。

PHP Code Widget

(プラグインは開発、更新が終了することがあるので、アップデート時不具合出ることが稀あるので、
 php書き換えで行えそうなカスタマイズでは、あまり頼りたく無いのですが・・・
 今回は、高性能なテーマで、内部エラーの箇所が見つけられず、プラグインに頼りました。)

PHP Code Widgetを有効化すると
ウイジェットに「PHP Corde」というメニューが増えています。

通常通り、ドラッグで任意のメニューエリアに置いて、
いきなり、phpを書きこむだけです!!

(function.php書き込むと不具合が出た複雑なテーマにも影響がありませんでした。)

今回書きこみたかったのが以下。

[php]
<?php $posts = get_posts(‘category_name=news&showposts=5’); global $post;?>
<?php if($posts): foreach($posts as $post): setup_postdata($post); ?>
<ul>
<li>
<?php the_time(‘Y年m月d日’); ?> <a href="<?php echo get_permalink($post->ID); ?>"><?php echo $post->post_title; ?></a></li></ul>
<?php endforeach; endif; ?>
[/php]

ここで、今回悩んで追加した箇所が・・・・global $post;

前回、特定カテゴリー名(スラグ名)newsのうち、最新5件取得する際使ったphpの先頭は
↓↓↓
[php]
<?php $posts = get_posts(‘category_name=news&showposts=5’);?>
[/php]

これだと、該当ページの投稿日を取得してしまい、サイドメニューの最新記事の投稿日が
各ページの投稿日を表示し、各々違う日付が5つ並ぶことに。
何考えるるネン!WPよ!とちょっと笑っちゃいました。^_^;

で、get_posts の後に、入れたのが”global $post;”
https://ja.forums.wordpress.org/topic/154
これで解決!!!

 
 


今回、いろんな箇所でカスタマイズ時迷子になったのは、Access Pressさんの高性能なテーマ。^_^;
https://accesspressthemes.com/themes/

独自のカスタマイズメニューもついているので、本来、その他の箇所は弄る必要もないと思うのですが
そこは、クライアント様のご意向に沿うように・・・
自分の勉強のためにも、できる限り、WPのご機嫌伺いながら。
ただ・・・テーマのバージョンによっても、
直接、functionに書き込んでも支障がなかったりしたので
どのバージョンに当るかは、運なのかもしれません?えっ?ですね。
毎度、自分用メモで失礼しました。

コメント