開発者全員が知っておくべき15の便利なWordPress機能
WordPressには、開発者が使用するための素晴らしい機能がたくさんあります。私たちは、薄いリストから投稿リストを引き出すこと、それらについてのほとんどすべてを操作すること、私たちが望む任意のユーザーをつかむこと、そしてちょっとしたことで彼らのソーシャルメディア接続を表示することができます.
ただし、未知の理由で見落とされているように思われる関数がかなりあります。私は約8年間WordPressでコーディングしてきました、そして時折私はまだ何か新しいものを見つけます!私の一部を見てみましょう 見落とされがちな機能 そして途中でそれらを使用する方法を学ぶ.
アンチスパムボット()
私は通常これを使っていくつかの眉毛を上げます、それはコードベースの中で最も隠された機能の1つのようです。.
文字をHTMLエンティティに置き換える メールアドレスをマスクする 邪悪なスクレーパーから.アンチスパムボット()
$ email = '[email protected]';エコー「あなたは私に連絡することができます」。スパム対策($ email) ' どんなときも'.
これは便利なことですが、それは何人かの人々がWordPressを批判する理由の例でもあります - これは恐ろしい名前の関数です。関数名を読んでから、それが何をするのかわかりません.
human_time_diff()
私が最初に約1年前にこの機能について学んだとき、私はそれが私がchangelogで見落としていた最近の追加であったにちがいないと思いました。いや…
2つのタイムスタンプの違いを出力するこの関数は、バージョン1.5以降にあります(それは2018年2月17日です!).
私がコーデックスから借りた次の素晴らしいスニペットは、現在の投稿が公開されてからどれくらい前かを示しています。それを使用します 最初の引数として投稿の公開日 そしてその 秒としての現在の日付.
echo 'この記事は公開されました'。 human_time_diff(get_the_time( 'U')、current_time( 'timestamp')) ' 前';
get_post_meta()
ここで私と一緒に、私はこれがよく使われる関数であることを知っています、しかしそれがどのように機能するかはそれほど一般的な知識ではありません。まず最初に、2番目と3番目のパラメータを省略することで、次のことができます。 投稿のすべてのメタデータを取得する.
$ all_meta = get_post_meta(14);
あなたがただ一つのキーのためのデータをつかむだけであっても、すべてのpostmetaはとにかく引っ張られます.
その理由は実際にはかなり論理的です。メタデータは複数の場所で使用されます。もし
データベースが使用されるたびにデータベースに対してクエリを実行すると、クエリが多すぎることになります。代わりに、メタデータを取得した場合は、すべてメタデータをキャッシュし、それ以降のすべてのメタデータ取得でキャッシュ値を使用します。.get_post_meta()
wp_upload_bits()
この機能はストレートアップです。 ファイルアップロード機能. ファイルをuploadsフォルダに移動したり、WordPressメディアセクションに追加したりすることはありませんが、非常に便利です。
関数.wp_insert_attachment()
$ upload = wp_upload_bits($ file ['name']、null、file_get_contents($ file ['tmp_name']));
これについてはいくつかの説明があります。最初のパラメータはファイル名です。 2番目のものは非推奨であるため、nullに設定する必要があります(WordPressの一貫性ではeyeroll)。 3番目のパラメータはファイルの実際の内容です.
get_post_field()
過去に私は、誰かが投稿のコメント数を取得するためのループを書いたり、それ専用のデータベースクエリを書いたりした例をたくさん見ました。あなたはそれらを必要としません、あなたが必要とするものは
. この機能 単一の投稿に対して単一のフィールドの値を取得します。 データベース内。コメント数をつかみましょう!get_post_field()
この投稿は コメント.
wpautop()
この機能はやや注目を浴びていますが、まだ比較的知られていません。 PHPネイティブに似ています nl2br
新しい行を作成する代わりに、 コンテンツを段落で囲む.
これは、テキストボックスがあり、ユーザーが二重改行を含む段落を作成したときに、それらがフロントエンドにも表示されたままになるようにしたい場合に便利です。.
ユーザーが言うこと
wp_is_mobile()
この適切な名前の関数 ユーザーがモバイルデバイス上にいるときにそれを検出し、それに応じてコンテンツを表示できるようにします。. これは条件付きタグなので、シナリオに応じてtrueまたはfalseを返します。.
より豊富なユーザーエクスペリエンスについては、デスクトップ上の当社のWebサイトにアクセスしてください。
wp_redirect()
最後の例は、他の便利な機能を示しています。
. これはPHPネイティブの代わりに使われるべきです。 wp_redirect()
ヘッダ()
関数。 WordPressのリダイレクト機能を使用すると、することができます リダイレクト先のURLを設定し、ステータスコードも設定します。, 恒久的なリダイレクトの処理にも最適.
//もう使用されていないURLの場合wp_redirect( 'http://website.com/new-url/'、301);
paginate_links()
私は、この機能がWP-PageNaviプラグインの人気のせいでその曖昧さを負っていると思う。デフォルトではWordPress 投稿リストの最後に前/次のリンクを表示します. WPページナビ それをページ番号に置き換えます.
これは実際にはちょっとした作業で
関数。それはかなりの数のパラメータを持っているので、私はドキュメンテーションを覗くことを勧めます.paginate_links()
次のコーデックスの例は、デフォルトのループに追加する方法を示していますが、カスタムループに追加することはそれほど難しくありません。.
グローバル$ wp_query; $ big = 999999999。 //あまりない整数のエコーが必要ですpaginate_links(array( 'base' => str_replace($ big、 '%#%'、esc_url(get_pagenum_link($ big)))、 'format' => '?paged =%#%' 'current' => max(1、get_query_var( 'paged'))、 'total' => $ wp_query-> max_num_pages));
wp_die()
この機能はPHPを補完するものです。 die()
関数。違いは、この関数は単なるプレーンテキストの代わりにWordPressスタイルのHTMLを表示するということです。この関数を使ってPHPの実行を止めることができます。表示するメッセージ、タイトル、および追加の引数を追加できます。次に例を示します。
wp_die( "おっと、あなたにアクセスできない"、 "アクセス許可が拒否されました");
has_block()
バージョン5.0では、WordPressはコードベースのGutenbergというブロックベースのエディタを導入しました。この関数は、コンテンツにグーテンベルクが含まれているかどうかを識別します。 has_shortcode()
関数。それは戻ります 本当の
コンテンツにブロックが含まれている場合、または 偽
そうでない場合.
wp_set_script_translations()
WordPressのユーザーインターフェイスの多くはJavaScriptに移行するので、WordPressが解析して理解できるように、翻訳可能なテキストをJavaScriptに登録する便利な方法が必要です。この関数を使ってあなたのスクリプトに翻訳された文字列を設定します。以下はその例です。
wp_enqueue_script( 'my-script'、plugins_url( 'js / my-script.js'、__FILE__)); wp_set_script_translations( 'my-script'、 'mu-text-domain');
register_block_type()
WordPress 5.0のもう一つの顕著な機能。この機能により、新しいWordPressエディタに新しいブロックを登録することができます。あなたのブロックが新しいエディタに表示され、挿入されます .
register_block_type( 'my-plugin / new-block'、array( 'タイトル' => '新しいブロック'、 'アイコン' => 'メガホン'、 'カテゴリ' => 'ウィジェット'、 'render_callback' => 'render_function_callback' 、));
rest_do_request()
この機能により、PHPを介してWordPress REST APIエンドポイントを呼び出すことができます。 REST APIから出力を取得して処理する必要がある場合は、ブラウザ(フロントエンド)側ではなくPHP側でさらに処理する必要がある場合に非常に便利です。.
$ request = new WP_REST_Request( 'GET'、 "/ wp / v2 / posts"); $ request-> set_header( 'X - WP - Nonce'、wp_create_nonce( 'wp_rest')); $ response = rest_do_request($ request); $ data = 200 === $ response-> get_status() $ response-> get_data():[];
rest_preload_api_request()
WordPressでJavaScriptを多用するUIを構築する場合、通常はページ内に初期化された一連の初期データが必要です。これはあなたがそうすることを可能にする機能です。この機能は、 array_reduce
, 例えば.
//共通データをプリロードします。 $ preload_paths = array( '/'、 '/ wp / v2 / types?context = edit'、 '/ wp / v2 / taxonomies?per_page = -1&context =編集'、 '/ wp / v2 / themes?status = active' 、); preload_data = array_reduce($ preload_paths、 'rest_preload_api_request'、array()); wp_add_inline_script( 'wp-api-fetch'、sprintf( 'wp.apiFetch.use(wp.apiFetch.createPreloadingMiddleware(%s));'、wp_json_encode($ preload_data)、 'after');
結論
これらは、他のものほど知られていないように見えるいくつかの機能です。私は2か月ごとに新しいすばらしい機能を発見しました、そして私のさらにそこにいる開発者の友人が私たちをさらに驚かせることができると確信しています.
あなたが好きな曖昧な機能、あるいは有用であるが利用できない機能を持っているならば、コメントで私たちに知らせてください!