hokutonojikei
フォーラムへの返信
-
フォーラム: 使い方全般
返信が含まれるトピック: おすすめのプラグイン開発の構成munyaguさんコメントありがとうございます!
実行するのは以下の場所で考えています。
wp-content/plugins/test-oo-plugin/test-oo-plugin.phpまたは
themes/page.php
ただ実行場所も含めて迷いがあり、おすすめがありましたら知りたいです。仰る通りフックで実行するかテンプレートで実行すれば
get_post()などの実行はできます。
ただtest-oo-plugin.phpのクラス内メンバ変数からreturnで値を返したい時に
フックを使う場合だとreturnが返せないと思います。(何か方法があれば知りたいです)public function __construct () { add_action( 'wp', array( $this, 'connect_function' ) ); return $this->base_information; }
↑としてもフック経由で実行された値が入っていない。
public function connect_function () { $this->my_Oo_function(); $this->get_post_id(); return $this->base_information; }
↑こちらも同じ理由
private function get_post_id () { $post_data = get_post(); array_push( $this->base_information, $post_data->ID ); return $this->base_information; }
↑こちらも返るのはconnect_function()の部分までで
結局クラス外に出すことができない?そこでいっそのことpage.phpでクラスをインスタンス化し
関数を定義すれば一応実行させることができました。【test-oo-plugin.php】
class Test_Oo_Plugin { /** * コンストラクタを削除 public function __construct () { add_action( 'wp', array( $this, 'connect_function' ) ); } */ /** * 基本情報を格納する配列 */ private $base_information = array(); /** * add_actionに橋渡しする関数 */ public function connect_function () { $this->my_Oo_function(); $this->get_post_id(); return $this->base_information; } /** * 現在のユーザー名を取得し配列に格納 */ private function my_Oo_function () { $my_original_current_user = wp_get_current_user(); array_push( $this->base_information, $my_original_current_user->user_login ); } /** * 現在のIDを取得し配列に格納 */ private function get_post_id () { $post_data = get_post(); array_push( $this->base_information, $post_data->ID ); } } function user_function($information_instans) { foreach ( $information_instans as $key => $value ) { echo '<br><hr><br>' . $key . ':' . $value . '<br><hr><br>'; } }
【page.php】
$test_oo_plugin = new Test_Oo_Plugin(); user_function( $test_oo_plugin->connect_function() );
上記で動くことは動きますが以下の点が気になっております。
・後から読んだ際の可読性が悪くなりそう
(この辺りは自分の経験が少ないのでご意見を伺いたいです。)
・このまま拡張すると処理がテーマ→プラグイン→テーマ・・・となりそうなので
プラグイン内で完結できる方法、add_action経由でreturn返す方法があれば知りたいです。
・get_postなどの関数はグローバル変数に値を保存するように作られていると思います。
今回のようにカプセル化をする必要がないと考えて設計したほうが良いのでしょうか。
またご不明点などありましたら突っ込んでいただければ幸いです。
よろしくお願いいたします。- この返信は7年前にhokutonojikeiが編集しました。理由: 改行されていない部分があった
- この返信は6年、 9ヶ月前にNaoko Takanoが編集しました。
フォーラム: 使い方全般
返信が含まれるトピック: class内の関数をprivateにして呼び出したいmunyaguさん、質問が不適切とのことで失礼いたしました。
仰る通りPHPの質問に見えてしまう書き方をしてしまいましたので
新しくトピックを作成しなおしたいと思います。フォーラム: インストール
返信が含まれるトピック: wp core update(wordpressアップデート時)の具体的な動きを知りたいですTakahashi Fumikiさん、ご返信ありがとうございます。
wordpressルートディレクトリ直下のファイルは削除されないんですね。
この辺りがはっきりしなかったので助かりました。またvendorディレクトリの件もありがとうございます。
プラグインで管理するというやり方は知りませんでした。
composer自体今回初めて触ったのでセキュリティ的な作法も含めあらためて調査してみます。
貴重な情報ありがとうございました。フォーラム: インストール
返信が含まれるトピック: wp core update(wordpressアップデート時)の具体的な動きを知りたいですmunyaguさん、ご返信ありがとうございます。
>そこがドキュメントルートである場合、.htaccessやrobot.txtを削除されたりしたら動作に支障をきたすからです。
今まで意識したことがなかったですが言われてみればその通りですね。
そう考えるとwordpressはやっぱりすごい考えられてますね~chattrコマンドのiオプションは知りませんでした。
試してみます。貴重な情報ありがとうございました。フォーラム: インストール
返信が含まれるトピック: wp core update(wordpressアップデート時)の具体的な動きを知りたいですCGさん、貴重な経験談ありがとうございます。
テスト環境を複製して試してみます。
フォーラム: 使い方全般
返信が含まれるトピック: 固定ページの「title」にカテゴリー名を出力したいこんばんは。
固定ページはカテゴリを持っていないと思うので
固定ページにカテゴリを追加してあげて
http://shufulife.com/page-category/functions.phpに以下コピペ
add_action('init','add_categories_for_pages'); function add_categories_for_pages(){ register_taxonomy_for_object_type('category', 'page'); } add_action( 'pre_get_posts', 'nobita_merge_page_categories_at_category_archive' ); function nobita_merge_page_categories_at_category_archive( $query ) { if ( $query->is_category== true && $query->is_main_query() ) { $query->set('post_type', array( 'post', 'page', 'nav_menu_item')); } }
こちらの環境ではTwenty Seventeenでご提示いただいたソースを張り付け
やってみたところいけましたがいかがでしょうか。上記だと投稿のカテゴリと同じものを使いまわす感じです
固定ページは固定ページでのカテゴリを別に作るとなると
カスタム投稿タイプ+タクソノミー(カテゴリ)のような形もできると思います。- この返信は7年、 8ヶ月前にhokutonojikeiが編集しました。理由: 追加情報
フォーラム: 使い方全般
返信が含まれるトピック: パーマリンク入力欄の幅を広げたいこんにちは。
functions.phpに以下を設定しても変化ないでしょうか。
(コピペする場所はどこでも構いませんが
もし変化がないようでしたら最初に張り付けるパターンと
最後に張り付けるパターンをお試しください)function my_admin_style() { echo '<style> #new-post-slug {width: 100%;} </style>'.PHP_EOL; } add_action('admin_print_styles', 'my_admin_style');
◆参考ページ
https://memocarilog.info/wordpress/7570ほかに適用されない可能性としては
http://qiita.com/oh_rusty_nail/items/e896825cd54e5c0a3666などがあります。
うまくいかない場合はデベロッパーツールなどでの
具体的なテストと結果を張り付けていただければと思います。
またプラグインなど影響が出そうなものは止めていただいたほうが確実かもです。- この返信は7年、 8ヶ月前にhokutonojikeiが編集しました。理由: 間違い修正
フォーラム: 使い方全般
返信が含まれるトピック: コアファイルmedia-upload.phpについてgblsmさんコメントありがとうございます!
リンクもありがとうございます。
これが見つけられず困っておりました。
(見逃していたのかもしれません^^;)勉強になりました。
こういった仕組みがあるんですね。こんばんは。
FTPソフトでサーバに接続したり
サーバ管理画面に入ることはご自身でされていますでしょうか。もしそのあたりを委託しているようであれば
manboさんが張ってくれたリンクを
そのまま伝えれば対応してくれると思います。フォーラム: 使い方全般
返信が含まれるトピック: mysql入替の作業でエラーkimipoohさんありがとうございます!
URLありがとうございました。
改めて見直していたところデータベース内のアドレス部分が違うところがあり
vimで置換したらうまくいきました!フォーラム: 使い方全般
返信が含まれるトピック: jetpackのsharing.cssを無効にしたいですcolorful-lifeさん度々ありがとうございます!
wp_print_stylesのcodex冒頭に書いてありましたね^^;
https://codex.wordpress.org/Plugin_API/Action_Reference/wp_print_styles日本語情報でもwp_print_stylesの情報がたくさん残っていますが
wp3.3以降はバグの原因になる可能性があるとのこと。あぶないx2^^;
助かりました!こういったタイプのバグははまると大変なので。。。
一応元のブログも共有しておきます。
https://make.wordpress.org/core/2011/12/12/use-wp_enqueue_scripts-not-wp_print_styles-to-enqueue-scripts-and-styles-for-the-frontend/フォーラム: 使い方全般
返信が含まれるトピック: jetpackのsharing.cssを無効にしたいですishitakaさんコメントありがとうございます!
また返信が遅れまして大変失礼いたしました。
修正情報までありがとうございます。しかしこちらのフックも知りませんでした。
何かの際に使えると思います。
勉強になりました!ありがとうございます!フォーラム: 使い方全般
返信が含まれるトピック: jetpackのsharing.cssを無効にしたいですColorful-lifeさんコメントありがとうございます!
また返信が遅れ大変失礼いたしました。
リンク先の方法で無事無効にすることができました。なんとなくできてしまったので
jetpack_implode_frontend_cssこちらのフックの意味を調査してみます。wp_deregister_styleは非推奨になっていたんですね。
とりあえず機能させることを優先していたので確認しておりませんでした。
ともかく無事解決することができました!ありがとうございましたm(_)m度々のコメントありがとうございます。
現在バックアップの実行はアクセスの
ほとんどない深夜に実行しているため
影響は少ないと思いますが、このあたりもテストしてみます。Du bist der Lenzさん、コメントありがとうございます。
作業ファイルの残骸だったんですね。
バックアップファイルは必要な時に手動ダウンロードしていますが
保存先を改めて考えてみます。