WordPress

WordPressの開発者および管理者向けのQ&A


4
wpdbを使用したget_results
データベースの情報を取得しようとしています。pagesこのステートメントを使用してすべてを表示したかったのですが、空白が表示されますARRAY global $wpdb; $result = $wpdb->get_results ( " SELECT * FROM $wpdb->wp_posts WHERE post_type = 'page' " ); echo $result; // display data 出力: ARRAY 編集:以下の提案を変更した後、私はこれを使用しています。しかし、私はまだ結果が得られません: global $wpdb; $posts = $wpdb->wp_posts; $result = $wpdb->get_results( " SELECT * FROM $posts WHERE 'post_type' = 'page' " ); foreach ($result as $page) { …
12 database  query  wpdb 

3
$ post in initフィルターまたはアクションを取得しますか?
$ postは、特定の時間に実行されるフックでのみ使用できるようです。$ post-> IDを使用してデータベースからデータをプルする必要がある「init」フックがあります。 これまでのところ、私の唯一の回避策は、$ postを使用して必要な情報を取得する、the_contentに別のフィルターを追加することでした。残念ながら、それはまた画面に戻り値をエコーし​​、フィルターを最初に呼び出した関数に実際にそれを返すことに失敗します。 以下は、必要なデータを抽出するコードですが、エコーして値を返しません。 add_filter('the_content', 'get_keyword'); function get_keyword() { global $post; $keyword = get_post_meta( $post->ID, '_wpg_def_keyword', true ); return $keyword; } 誰かが私が必要とするものを取得し、後でプラグインで使用するために呼び出し元の関数に戻す方法について何か提案はありますか? 編集:これをより明確にするために、私はinitで実行中のフィルターを持っています。これは、DBから現在の投稿に関する情報を取得できる必要があります。これを行うには、$ post-> IDへのアクセスが必要です。しかし、それはinit内では不可能なので、どのようにして必要な結果を得ることができますか? おかげで、 ジョナサン 解決済み: 答えは次のように単にurl_to_postidを使用することでした: $keyword = get_post_meta( url_to_postid( "http://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'] ), '_wpg_def_keyword', true ); initからでも完全に動作します。
12 hooks 

5
Xdebugでプラグインをデバッグする方法は?
PHP 5.3.0(XAMPP)ベースのローカル環境に、NetBeans 6.9.1とXdebugを非常に簡単にインストールしてセットアップできました。 私の問題は次のとおりです。Wordpressのindex.phpまたは他のWordpressコアPHPファイルにブレークポイントを設定すると、NetBeansは目的の位置で正しく停止します。代わりに、プラグインファイルにブレークポイントを設定した場合、コード実行NetBeansのトリガーはそこで停止しません。 どのように解決できるか知っていますか? 更新:私がデバッグしようとしているものに関する詳細情報 プラグインはバニラフォーラムと呼ばれ、次のファイル構造があります。 - plugins - vanilla-forums + assets + nbproject + templates admin.php embed.php functions.php hooks.php plugin.php sso.php widgets.php でvf_validate_options定義されfunctions.phpた名前の関数内にブレークポイントを設定します。この関数は確実に実行されますが、NetBeansはそこで壊れません。

4
add_action()で使用する優先度を知る方法は?
私はバックエンドから管理者以外のユーザーのいくつかのメニュー項目を削除する小さなプラグインを書いていて、コードで優先度を指定しない限り、私のプラグインは何もしないことがわかりました: add_action('admin_bar_menu', 'remove_toolbar_items', 999); なしでは999、コードは私のremove_toolbar_items関数の項目を削除せず、それでうまく機能します: function remove_toolbar_items( $wp_admin_bar ) { if ( !current_user_can( 'manage_options' ) ) { $wp_admin_bar->remove_node('new-post'); $wp_admin_bar->remove_node('comments'); } } 優先度パラメータの状態に関するドキュメント: 特定のアクションに関連付けられた関数が実行される順序を指定するために使用されます。小さい番号は以前の実行に対応し、同じ優先順位の関数は、アクションに追加された順に実行されます。デフォルト値:10 ただし、どの優先順位を使用するかを決定する方法を説明するものは見つかりませんでした。いつ優先度を使用するか、どの優先度を使用するかをどのように決定しますか?優先度パラメータをいじっていなければ、何時間も頭を悩ませていたような気がします。 また、デフォルトの優先順位は10であることがわかりましたが、既知の優先順位値の範囲はありますか?
12 actions 

4
WordPressを新しいサーバーに移動し、ファイルをダウンロードしようとしました
まず、何十ものWebサイトを1つのサーバーから別のサーバーに問題なく移動したと言います。 私は最近Webサイトを移動しましたが、URLにアクセスすると、「download」という名前のファイルが拡張子なしで1KBのファイルサイズだけで自動的にダウンロードされます。私はすべてのファイルをバックアップし、4つの異なる方法を使用してデータベースをダウンロードしました。念のため、BackWPup、BackUpWordPress、および手動でファイルを圧縮し、FTP経由でファイルをダウンロードしました。 元のWebサイトは元のサーバーで完全に動作します。 新しいサーバーに移動するときはいつも使用していた方法を使用しました。 新しいサーバーで: 新しいDBを作成し、ユーザーとインポートデータベース ファイルをアップロードして解凍 新しいDB名、ユーザー、パスワードでwp-config.phpを編集します WordPress Codex(http://codex.wordpress.org/Changing_The_Site_URL)の functions.phpメソッドを使用して、WebサイトのURLを変更します。 また、サイトを3つの異なるサーバー(元のサーバーのサブドメインを含む)にアップロードしましたが、結果はすべて同じでした。 上記の方法に加えて、トラブルシューティングを行うために次のことを試しました。 「plugins」フォルダ名を変更して、プラグインがエラーの原因であるかどうかを確認しました アクティブなテーマのフォルダー名を変更して、テーマがエラーの原因であるかどうかを確認しました wp-conig.phpでWP_DEBUGを「true」に変更-サイトは読み込まれないため、エラーは表示されません。 現在、エラーのあるWebサイトは-http://cgdev.webworksplayground.com/にあります。 助けてくれてありがとう。
12 migration  server 

2
デフォルトの役割と機能をリセットする
カスタムの投稿タイプの機能をロールに追加する(デフォルトのロールに機能を追加する)のに苦労しており、混乱が原因で問題が発生したと思われます。また、さまざまなプラグインをインストールおよびアンインストールし、その一部に機能を追加しました。結果として、私のWP Roleオブジェクトは少し混乱しています。機能をリセットする方法を知っている人はいますか、それとも新規インストールが必要ですか?


3
子テーマで親テーマの翻訳をオーバーライドする
load_theme_textdomain()多くの言語で翻訳されたすべての文字列を正しく読み込むために使用する親テーマがあります。 次にload_child_theme_textdomain()、文字列に対して同じことを実現するために使用する子テーマを作成しました。 親テーマには特定の言語の特定の翻訳された文字列がありますが、これは子テーマで置き換え/オーバーライドしたいものです。 それらがテンプレートファイルにある場合、ファイルを置き換えてそれらの文字列のテキストドメインを変更することができますが、残念ながら私が話しているものは多くの場所とダッシュボードで使用されています)。 だから私の質問は次のとおりです:親テンプレートファイルまたは関数を置き換えることなく、子テーマ内のこれらの翻訳された文字列を置き換える方法はありますか? 多分、子テーマの言語フォルダー内にparent-theme.moファイルを追加し、それらの文字列のみを翻訳したものなどを追加します。

4
get_template_part()の結果をオーバーライドすることは可能ですか?
私は子テーマに取り組んでいます。子テーマのシンプルさを維持し、長期にわたるコードとメンテナンスの量を最小限に抑えるために、メインテンプレートファイルをオーバーライドしないことを強くお勧めします。 ループでは、親テーマのindex.phpテンプレートは次を使用します。 get_template_part( 'content' ); これにもたらすcontent.php、私はそれがより多くのように振る舞う持っているよget_template_part( 'content', get_post_format() );ような異なるテンプレートにもたらすためにまたは類似のコンテンツaside.php作成せずに、など、index.phpのを上書きする子テーマに単一行の変更の親。 get_template_part() で構成されます: function get_template_part( $slug, $name = null ) { do_action( "get_template_part_{$slug}", $slug, $name ); $templates = array(); $name = (string) $name; if ( '' !== $name ) $templates[] = "{$slug}-{$name}.php"; $templates[] = "{$slug}.php"; locate_template($templates, true, false); } 私の場合、と呼ばれるアクションがあります get_template_part_content 私は次のようなものでアクションにフックすることができます: …

2
プラグインを使用してwp_nav_menuによって生成されたメニューにサブメニューを追加する方法
私はによって生成されたメニューきwp_nav_menuたように見えるが <ul class="nav-menu" id="menu-top-nav"> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-43" id="menu-item-43"><a href="http://www.example.com/item1.com">Item 1</a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-44" id="menu-item-44"><a href="http://www.example.com/item2.com">Item 2</a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-45" id="menu-item-45"><a href="http://www.example.com/item3.com">Item 3</a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-46" id="menu-item-46"><a href="http://www.example.com/item4.com">Item 4</a></li> </ul> プラグインを使用して「アイテム3」にサブメニューを追加することにより、上記のメニューを変更したいので、以下が目的の出力です。 <ul class="nav-menu" id="menu-top-nav"><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-43" id="menu-item-43"><a href="http://www.example.com/item1.com">Item 1</a></li> <li class="menu-item …

2
プラグインライフサイクルのドキュメントはありますか?
プラグインのライフサイクルとは何かを説明するドキュメントがどこかにありますか? 私はOOPスタイルの新しいプラグインを開始しましたが、私のメインクラスが非常にインスタンス化されていることがわかりました(XdebugとNetbeansのおかげです)。 Dropbox-APIオブジェクトをインスタンス化しているので、それが私をイライラさせ、WordPressがメインクラスをそれほどインスタンス化するとは思わなかったのです。 CodexでもGoogleでも、プラグインのライフサイクルに関連するものは見つかりませんでした。

2
プラグインSVNと更新API-プラグインはどのように識別されますか?
(特にプラグインをリポジトリに送信していないので)私には決して明らかではないことの1つは、プラグインの一意の「ID」(スラッグ)がどのように生成されるかです(つまり、このリスト)。 SVN提出時点での著者による選択ですか、それともモデレーターによる選択ですか? サニタイズされたプラグイン名(タイトル)ですか? それplugin_basenameですか? メインのプラグインファイルですか(ディレクトリ名なし)? 他に何か? プラグインのどの属性がプラグイン更新API のSVNカウンターパート(ある場合)にリンクするのか興味がありますか? 私の知りたい部分もありますが、SVNのプラグインと1回限りのプラグインが衝突しないように(ある程度)確認する方法もあります。 たとえば、3)のみの場合、非常に一意のディレクトリ名を使用できますが、プラグイン名(タイトル)は短く 'n sweetにしてください。 NB「標準」ファイル命名規則はそうであるように見えますが[my-plugin-name]/[my-plugin-name].php、私は好きになりました[my-plugin-name]/plugin.php。 それはすべてのプラグインに一定の一貫性を与え、それが「ブートローダー」(メイン)ファイルであることは明らかであり、ささいな観点から私はディレクトリ名の繰り返しが嫌いです。 これは、4)が私を台無しにするからです。さらに、この「標準」に関するあなたの考えも聞きたいです:)

1
add_role()は1回だけ実行されますか?
add_role()がデータベースを変更し、ロールが既に存在する場合に失敗することを発見して驚きました。ここには2つの意味があります。1つ目はもう1つより深刻です:1)add_roleコードを開発して更新している場合は、最初にremove_role()を実行する必要があります再び。 そのため、通常はadd_role()をwp_loadedアクションフック内に入れています。また、開発中なので、add_roleの前にremove_role()を追加したため、キャップのリストを変更した場合に実際に有効になることを確認できます。 しかし明らかに、これはブログのページがアクセスされるたびに実行されています。さて、管理者のみのアクションに入れることも、このロールを1回作成できるユーザーまたはツールの下にプラグインページを作成することもできます。もっとシンプルでエレガントなソリューションが出ることを期待していると思います。 run_onceのようなアクションがあるとは思いませんか? または、ロールを追加してからadd_cap()を何回も使用するだけのベストプラクティスですか?そして、それでもadd_capがdbにアクセスしていると思います。 不要なdbアクセスを減らすための最良の方法について考えてみてください。あなたのベストプラクティスは何ですか?

1
FTP経由のアップロード後にメディアライブラリファイルを更新する
大量のファイルを/ wp-content / uploads / [year] / [month] /に直接アップロードする必要がありましたが、それらのファイルはDashboard> Media> Libraryに表示されません これらのファイルをロードするために更新または更新する方法はありますか、それはデータベースにも書き込まれているはずであり、私がそれを回避したため、それは単に起こっていますか?この場合、それを修正するプラグインはありますか?
11 media  ftp  library 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.