我正在开发一个Wordpress插件,我需要
在Write Post/Write Page编辑屏幕(循环外)中获取当前的Post ID.
我还需要在"admin_print_scripts"挂钩之前执行此操作,因为我想将一些数据传递给javascript文件.
我不能用:
$id = $_GET['post'];
Run Code Online (Sandbox Code Playgroud)
因为当您添加新帖子或页面时,网址不包含此变量.
到目前为止,我已尝试过这些选项,但它们都没有奏效:
A)返回ID为0
function myplugin_setup() {
global $wp_query;
$id = $wp_query->get_queried_object_id();
var_dump($id);
}
add_action('admin_init', 'myplugin_setup' );
Run Code Online (Sandbox Code Playgroud)
B)返回ID为null
function myplugin_setup() {
global $wp_query;
$id = $wp_query->post->ID;
var_dump($id);
}
add_action('admin_init', 'myplugin_setup' );
Run Code Online (Sandbox Code Playgroud)
C)这也返回一个null的ID
function myplugin_setup() {
global $post;
$id = $post->ID;
var_dump($id);
}
add_action('admin_init', 'myplugin_setup' );
Run Code Online (Sandbox Code Playgroud) 我们开发WordPress网站,我们有回复客户,他们要求我们的网站进行修订,要求我们在开发到生产(现场)之前在开发环境中进行开发.一直存在的挑战是如何合并两个不同步但具有必须保留的新内容的WordPress数据库.
此内容的范围从页面,帖子和评论到插件设置和其他细微信息.因此,我们导出两个数据库并使用FileMerge for Mac来显示差异并手动合并它们.如果WordPress数据库不包含那么多的元信息,那么这将是很好的,否则,人类不可读(下面的例子).
我的问题是那里的人是否有关于如何解决这个问题的建议?基本上如果我们可以省略下面的项目(假设这样做是安全的吗?)那么我们将非常高兴继续使用FileMerge.但是对于这些项目,我们感觉我们正在解密世界上最长的密码.
FYI WP Migrate DB(包括Pro)无法做到这一点.我们采访了作者.
谢谢.
以下是我认为可以省略而不会在数据库中引起任何冲突的数据库记录列表.--_transient_random_seed - active_plugins"a"值(我相信它代表活动插件的数量) - _site_transienty_timeout_browser - recent_edited - db_version - cron - _transient_timeout_feed_mod - _transient_feed_mode - rewrite_rules - 插件版本 - _edit_locks
我必须脑死,我无法弄清楚如何获取所有帖子,$wp_query以便我可以为搜索结果创建一个小部件过滤器.
$wp_query->posts只给我将要显示在列表中的帖子,因此,如果posts_per_page设置为10,我只会得到10个帖子.我需要它们所以我可以对它们进行排序并根据搜索结果中的所有帖子显示过滤器.
有任何想法吗?
在我自定义的WordPress多站点安装中,我需要在条目表单中添加一个简单的文本字段,用于创建新的博客站点,该站点位于
Network Admin > Sites > Add New
当然,我需要将此字段与表格中的其他元数据一起保存{new_blog_prefix}_options.
我对最简单,最直接和/或"正确的方式"(即WordPress方式)特别感兴趣,但我会满足于The Way That Works™!
到目前为止,我在研究中遇到了无数的死胡同:
设置API - [ WP Codex ]
据我所知,Settings API (a) 可能不适用于网络管理员部分(虽然这可能在最新版本的WP中有所改变); 此外,(b)似乎只允许您Settings在仪表板的部分添加/修改屏幕.
wpmu_options hook - [ Hooks DB ]
似乎是专门用于向"网络设置"屏幕添加选项的挂钩.
add_site_option/add_blog_option - [ WP Codex ]
我能找到最近的; 似乎允许向{blogsite_prefix}_options表中添加特定于站点的选项,但仍然无法向Admin表单添加选项.
所以......没有骰子.任何帮助表示赞赏!
我在WordPress上使用WooCommerce,它将产品和产品类别添加到URL. http://dev.unwaveringmedia.com/8dim/product-category/all-party-supplies/ http://dev.unwaveringmedia.com/8dim/product/14-snowman-serving-tray/
我需要从网址中删除"产品"和"产品类别".有没有办法修改永久链接并删除它们?
我正在按照插件测试设置/安装说明进行操作.我wp scaffold plugin-tests my-plugin跑了 但是在我尝试运行的下一步,bash bin/install-wp-tests.sh wordpress_test root '' localhost latest我得到以下错误:
mysqladmin: connect to server at 'localhost' failed
error: 'Can't connect to MySQL server on 'localhost' (61)'
Check that mysqld is running on localhost and that the port is 3306.
You can check this by doing 'telnet localhost 3306'
Run Code Online (Sandbox Code Playgroud)
我的本地Wordpress站点正在运行MAMP(正在运行).我不确定这是否与安装脚本相关,因为我认为它正在创建一个临时数据库来运行测试......如果它使用内置的OSX mysql或MAMP的MySQL是否重要?
这是来自的输出 wp --info
$ ./vendor/wp-cli/wp-cli/bin/wp --info
PHP binary: /Applications/MAMP/bin/php/php5.6.10/bin/php
PHP version: 5.6.10
php.ini used: /Applications/MAMP/bin/php/php5.6.10/conf/php.ini
WP-CLI root dir: /Applications/MAMP/htdocs/pipeline/wp-content/plugins/wp-github-pipeline/vendor/wp-cli/wp-cli
WP-CLI global config:
WP-CLI …Run Code Online (Sandbox Code Playgroud) 我是插件开发的新手.所以,无论我哪里弄错了,请纠正我.
我有一个网站需要一个有以下需求的玩家插件: -
我已完成插件的激活,以及此插件的数据库表创建和管理员菜单选项.我还完成了播放器注册界面,但没有数据库插入代码.但所有这些都是使用正常的程序方式完成的.
我现在有两个头痛来完成这个插件的开发: -
如何继续以下(即使有一点知识共享)?
我搜索了谷歌,试图在互联网上找到一些关于这些的信息,但是我没有成功地使用OOP.
编辑: - 对于我们所有人(WordPress OOP插件开发新手)来说,有一些代码片段突出显示它的用途,这将是非常有用的.如果可能,您还可以提供一些文章链接,这些链接将正确描述如何编写此类OOP插件.
文章,像" gulbrandr "提供的那样,很有帮助,我还要感谢" kovshenin "分享/提及一些OOP插件的链接; 但如果可以提供更多的文章或任何代码片段,那将是非常好的,描述了开发OOP插件的正确步骤.
我试图找到do_action和add_action的确切作用.我已经用add_action检查了但是对于do_action我正在尝试新的.这是我试过的.
function mainplugin_test() {
$regularprice = 50;
if(class_exists('rs_dynamic')) {
$regularprice = 100;
}
// and doing further
//like i echoing the regular price
echo $regularprice; //It print 100 from this code
}
Run Code Online (Sandbox Code Playgroud)
现在我没有在主文件中放置少量代码,而是计划创建do_action以避免代码混乱问题.
function mainplugin_test() {
$regularprice = 50;
do_action('testinghook');
// and doing further
//like i echoing the regular price
echo $regularprice; //It should print 100 but it print 50
}
Run Code Online (Sandbox Code Playgroud)
所以我创建了另一个函数来指出钩子就像
function anothertest() {
if(class_exists('rs_dynamic')) {
$regularprice = 100;
}
}
add_action('testinghook','anothertest');
Run Code Online (Sandbox Code Playgroud)
不知道如何将代码行添加到上面的函数可能有效的钩子中?按照我在测试环境中尝试过没有任何帮助.如果我理解正确的do_action更像是包含一个文件??? 如果没有,请告诉我.
谢谢.
好的,我正在测试我的wordpress插件的ajax回调.所以我基本上按照这里的说明 https://codesymphony.co/wp-ajax-plugin-unit-testing/
这是我的ajax回调函数
public function my_plugin_get_site_pages( $args = null ) {
//...... Processing $site_pages.....
$response = array(
'status' => 'success',
'site_pages' => $site_pages
);
@header( 'Content-Type: application/json; charset=' . get_option( 'blog_charset' ) );
echo wp_json_encode( $response );
wp_die();
}
Run Code Online (Sandbox Code Playgroud)
这是我的测试
class My_Plugin_Ajax_Test extends WP_Ajax_UnitTestCase {
private $_foo;
public function setup() {
//.....Initialize $_foo here...
}
public function test_foo() {
try {
$_POST[ 'args' ] = array( 'return_format' => 'raw' );
add_action( 'wp_ajax_my_plugin_get_site_pages' , array( $this->_foo , 'my_plugin_get_site_pages' ) );
//$this->setExpectedException( …Run Code Online (Sandbox Code Playgroud) 我们已经部署了Wordpress实例并安装了JSON API插件
使用此插件,您可以进行简单的HTTP GET请求,例如:
http://www.example.org/?json=get_recent_posts
http://www.example.org/?json=get_post&post_id=47
http://www.example.org/?json=get_tag_posts&tag_slug=banana
Run Code Online (Sandbox Code Playgroud)
并在JSON中回复:
{
"status": "ok",
"count": 1,
"count_total": 1,
"pages": 1,
"posts": [
{...}}
Run Code Online (Sandbox Code Playgroud)
我的问题是我应该如何在我的Rails应用程序中进行这些类型的请求(然后解析返回的JSON).我刚开始只是从头开始写东西,但我想有一些好的现有工具来管理这样的东西.基本上,当Ruby-wrapper尚未可用时,我从未尝试过连接到API.你能帮助一个菜鸟如何开始?
wordpress-plugin ×10
wordpress ×9
php ×5
ajax ×1
api ×1
bash ×1
json ×1
mamp ×1
oop ×1
unit-testing ×1
woocommerce ×1
wp-cli ×1