質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

3515閲覧

add_action~の文字列がエラーになっています。削除しても問題無いでしょうか。

mocomoco.press

総合スコア12

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2019/05/01 10:16

編集2019/05/01 10:22

はじめまして、もこと申します。
現在、LIONMEDIAを用いてワードプレスサイトを運営しています。

サイトに気になる部分があったためfunctions.phpを修正しようとしたところ、
エラーとなりログインすらもできなくなり、最終的にテーマを削除することで解決しました。

しかしテーマを再インストールすると、今度はまた違う文字列がエラーになりました。

発生している問題・エラーメッセージ

Deprecated: Function create_function() is deprecated in /home/mocomocomoco/mocomoco.press/public_html/wp-content/themes/lionmedia/functions.php on line 5030 Deprecated: Function create_function() is deprecated in /home/mocomocomoco/mocomoco.press/public_html/wp-content/themes/lionmedia/functions.php on line 5127

該当のソースコード

該当の5030行目・5127行目には、このような文字列が挿入されています。

5030行目

add_action( 'widgets_init', create_function( '', 'return register_widget( "AdWidgetItemClass" );' ) );

5127行目

add_action( 'widgets_init', create_function( '', 'return register_widget( "Popular_Posts" );' ) );

##エラーの修正方法が分かりません
ウィジェットに関するエラーのようですが、この文字列を削除しても問題ないでしょうか。
もしくは、どのように書き換えれば修正できますでしょうか。

調べても解決策が分からず、質問させて頂きました。
よろしくお願い致します。

##念の為周辺のコードも記載しておきます

5019行目から

// 設定フォームを出力するメソッド function form( $instance ) { ?> <p> <label for="<?php echo $this->get_field_id('body'); ?>">広告タグ:</label> <textarea class="widefat" rows="8" id="<?php echo $this->get_field_id('body'); ?>" name="<?php echo $this->get_field_name('body'); ?>"><?php echo @$instance['body']; ?></textarea> </p> <?php } } add_action( 'widgets_init', create_function( '', 'return register_widget( "AdWidgetItemClass" );' ) ); ////////////////////////////////////////////////// //人気記事一覧ウィジェットアイテム ////////////////////////////////////////////////// class Popular_Posts extends WP_Widget { function __construct() { $widget_option = array('description' => 'PV数の多い順で記事を表示'); parent::__construct( false, $name = '[LION]人気記事', $widget_option ); } // 設定フォームを出力するメソッド function form($instance) { $time = !empty($instance['time']) ? 'checked' : ''; ?> <p> <p> <label for="<?php echo $this->get_field_id('title'); ?>">タイトル:</label> <input type="text" class="widefat" id="<?php echo $this->get_field_id('title'); ?>" name="<?php echo $this->get_field_name('title'); ?>" value="<?php echo esc_attr( @$instance['title'] ); ?>"> </p> <p> <label for="<?php echo $this->get_field_id('number'); ?>">表示する投稿数:</label> <input class="tiny-text" type="number" id="<?php echo $this->get_field_id('number'); ?>" name="<?php echo $this->get_field_name('number'); ?>" value="<?php echo esc_attr( @$instance['number'] ); ?>" step="1" min="1" max="10" size="3"> </p> <p> <input class="checkbox" type="checkbox" <?php echo $time; ?> id="<?php echo $this->get_field_id('time'); ?>" name="<?php echo $this->get_field_name('time'); ?>" /> <label for="<?php echo $this->get_field_id('time'); ?>">投稿日を表示しますか ?</label> </p> </p> <?php } //カスタマイズ欄の入力内容が変更された場合の処理 function update($new_instance, $old_instance) { $instance = $old_instance; $instance['title'] = strip_tags($new_instance['title']); $instance['number'] = is_numeric($new_instance['number']) ? $new_instance['number'] : 5; $instance['time'] = strip_tags($new_instance['time']); return $instance; } // 設定を表示するメソッド function widget($args, $instance) { extract($args); echo $before_widget; $title = NULL; if(!empty($instance['title'])) { $title = apply_filters('widget_title', $instance['title'] ); } if ($title) { echo $before_title . $title . $after_title; } else { echo '<h2 class="heading heading-widget">RANKING</h2>'; } $number = !empty($instance['number']) ? $instance['number'] : 5; get_the_ID(); $args = array( 'meta_key'=> 'post_views_count', 'orderby' => 'meta_value_num', 'order' => 'DESC', 'ignore_sticky_posts' => '1', 'posts_per_page' => $number ); $my_query = new WP_Query( $args );?> <ol class="rankListWidget"> <?php while ( $my_query->have_posts() ) : $my_query->the_post(); ?> <li class="rankListWidget__item<?php if ( get_option('fit_post_eyecatch') == 'value2' ) : ?> rankListWidget__item-noeye<?php endif; ?>"> <?php if ( get_option('fit_post_eyecatch') != 'value2' ) : ?> <div class="eyecatch eyecatch-widget u-txtShdw"> <a href="<?php the_permalink(); ?>"> <?php if(has_post_thumbnail()) {the_post_thumbnail('icatch');} else {echo '<img src="'.get_template_directory_uri().'/img/img_no.gif" alt="NO IMAGE"/>';}?> </a> </div> <?php endif; ?> <h3 class="rankListWidget__title"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3> <div class="dateList dateList-widget<?php if ( get_option('fit_post_eyecatch') == 'value2' ) : ?> dateList-noeye<?php endif; ?>"> <?php if(!empty($instance['time'])) : ?><span class="dateList__item icon-calendar"><?php the_time('Y.m.d'); ?></span><?php endif; ?> <span class="dateList__item icon-folder"><?php the_category(' ');?></span> </div> </li> <?php endwhile; wp_reset_postdata(); ?> </ol> <?php echo $after_widget; } } add_action( 'widgets_init', create_function( '', 'return register_widget( "Popular_Posts" );' ) );

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

create_functionはPHPに無名関数がなかった時代の代物

php

1add_action( 'widgets_init',function(){ 2 return register_widget( "Popular_Posts" ); 3});

投稿2019/05/01 14:04

KazuhiroHatano

総合スコア7804

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mocomoco.press

2019/05/01 15:10

コメントありがとうございます! 2行ともそのように書き換えれば良いのでしょうか? よろしくお願い致します。
KazuhiroHatano

2019/05/01 15:46

register_widgetの引数が違うみたいだけど同じ要領で widgets_initのタイミングでregister_widgetしたいだけだろうから別にreturnする必要もないので なんだったら2つともまとめてしまってもいいと思います
mocomoco.press

2019/05/02 04:32

5030行目は削除、5127行目のみ書き換える形で解決しました! ありがとうございました!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問