我一直在为wordpress开发一个完全有效的语言插件.现在唯一缺少的是网址重写.我一直在关注stackoverflow上的很多网站,资源和其他问题,但我似乎无法让我的永久链接工作.
我已经能够像这样添加一个查询字符串变量:
public function append_query_string($url)
{
$args = array('lang' => $this->get_locale());
return add_query_arg($args, $url);
}
add_filter('page_link', array($this, 'append_query_string'));
add_filter('post_link', array($this, 'append_query_string'));
add_filter('the_permalink', array($this, 'append_query_string'));
Run Code Online (Sandbox Code Playgroud)
这会改变我的链接http://www.mylink.com?lang=en_us
,例如.我现在想要的是添加一个permastruct,以便用户可以拥有漂亮的url(例如http://www.mylink.com/en/
)
我添加了以下代码:
public function add_query_var($vars)
{
$vars['lang'] = $this->get_locale();
return $vars;
}
add_filter('request' , array($this, 'add_query_var'), 10, 2 );
public function custom_permastruct()
{
add_permastruct('language', '%lang%', false);
}
add_action('wp_loaded', array($this, 'custom_permastruct'));
Run Code Online (Sandbox Code Playgroud)
我现在唯一需要的是重写规则,我猜想,但我可能完全错了.谁知道添加这个permastruct的最佳解决方案是什么?
编辑
我一直试图让这个工作一个月,我似乎无法掌握永久链接,甚至没有所有以前的答案和我自己的研究.所以这就是为什么我再次以赏金来发布这篇文章的原因.我需要的是:我有一个返回语言代码的函数(get_locale).该语言代码应在我的URL中实现,如下所示:"http://www.mywebsite.com/LANGUAGE_HERE/..."
我知道我需要为此注册我自己的永久链接结构,但这就是一切都出错的地方.我需要什么过滤器以及我应该在过滤器功能中添加什么?非常感谢任何帮助,因为我在这里非常绝望.
编辑2
所以我添加了重写规则,但它们似乎也没有用.我在这里有点绝望.无论如何,这是重写规则的代码:
public function add_rewrite_rules()
{
$languages = $this->get_all_languages();
foreach($languages as $language) {
add_rewrite_rule('^' . $language->code . …
Run Code Online (Sandbox Code Playgroud) 标题可能暗示它,但我正在寻找一种方法让Facebook图形API在我的localhost上工作.如果我每次要测试时都需要将项目同步到服务器,那将是一件痛苦的事情,因为图形仅在在线时有效.
有没有人对这个问题有任何建议?
我刚刚开始涉足谷歌地图API,但我已经陷入困境.我正在寻找一种方法来使用谷歌地图重新创建这种类型的地图.我需要删除所有标签,获得一个空白背景(我尝试使用地图样式,但这对我不起作用,下面的代码示例)并在我将鼠标悬停在它们上时点亮这些国家/地区.
在我的搜索中是否有任何我可能错过的教程可以帮助我,或者任何人都可以指出我正确的方向?:)
var _mapstyle = [
{
featureType: "all",
elementType: "labels",
stylers: [
{ visibility: "off" }
]
}
];
function create_map()
{
_map = new google.maps.Map(document.getElementById("eyewebz-map"),
{
zoom: 2,
center: new google.maps.LatLng(20, 0),
navigationControl: true,
navigationControlOptions: {
style: google.maps.NavigationControlStyle.DEFAULT
},
mapTypeControl: true,
mapTypeControlOptions: {
style: google.maps.MapTypeControlStyle.DROPDOWN_MENU
},
scaleControl: true,
mapTypeIds: ['_mapstyle']
});
_display.setMap(_map);
_display.setPanel(document.getElementById("NavigationText"));
}
Run Code Online (Sandbox Code Playgroud)
编辑 这是地图将用于:我已经走了一段时间,并期望做更多的事情.自从我第一次出访以来,我一直在博客上.我现在已经开发了一个新的博客,我想让我可以点击的国家/地区点击后点击一个网址.理想的情况是,当我点击某个国家/地区时,会将我带到一个页面,其中只有该特定国家/地区会显示在带有某些标记的地图中(访问的地点).单击这些标记后,它应显示特定的帖子/某些信息.
我一直在开发一个在一段时间plugin
中wordpress
,但有一个问题一直缠着我.我想将数据库表导出为excel文件,因此我需要$wpdb->variable
从插件目录中的文件访问全局.
我发现了一个博客条目,解释了我应该包含哪些类,但这不起作用(链接如下).正如你所看到的,我做了一个var_dump
,但它永远不会达到这一点.如果我离开代码的包含wp-config
和转wp-load
出,转储returns NULL
,所以我猜测导入存在问题.
无论如何,我希望有人可以帮我解决这个问题.我不一定需要修复我的方法,我只需要一种方法将数据数组(从我的数据库中提取)导出到wordpress中的excel.任何帮助,将不胜感激.提前致谢.
include_once('../../../wp-config.php');
include_once('../../../wp-load.php');
include_once('../../../wp-includes/wp-db.php');
var_dump($wpdb);
$filter = get_where_clause();
$order = get_order_by_clause();
$data = $wpdb->get_results("SELECT * FROM " . $table_prefix . "team_data" . $filter . $order, ARRAY_A);
$result = array();
Run Code Online (Sandbox Code Playgroud)
编辑:
我不能包括wp-config
,它给出了不断的错误.我知道bug发生在哪里,我只需要找到解决方法.在查看wp-settings
页面(包含在wp-config中)时,您会发现以下代码行:
foreach ( wp_get_active_and_valid_plugins() as $plugin )
include_once( $plugin );
unset( $plugin );
Run Code Online (Sandbox Code Playgroud)
这是有bug的地方.我只是不知道我应该如何解决这个bug.
编辑2:
问题解决了.当包括文件时,我wp-config
不止一次(尽管我说它应该只包括一次).我使用以下代码解决了这个问题.
global $wpdb, $table_prefix;
if(!isset($wpdb))
{
require_once('../../../../wp-config.php');
require_once('../../../../wp-includes/wp-db.php');
}
Run Code Online (Sandbox Code Playgroud) 我在使用电话号码的正则表达式时遇到了一些麻烦.我正在尝试为欧洲电话号码创建一个尽可能广泛的正则表达式.电话号码可以以+或两个前导0开头,然后是0到40之间的数字.但是,这不是必需的,因此第一部分也可以忽略.在那之后,它应该都是数字,分组成至少两个,在组之间有空格或 - .
我放在一起的正则表达式可以在下面找到.
/((\+|00)+[0-4]+[0-9]+)?([ -]?[0-9]{2,15}){1,5}/
Run Code Online (Sandbox Code Playgroud)
这应该与以下结构相匹配
0031 34-56-78
0032123456789
0033 123 456 789
0034-123-456-789
+35 34-56-78
+36123456789
+37 123 456 789
+38-123-456-789
...
Run Code Online (Sandbox Code Playgroud)
它根据我的javascript也匹配
+32 a54b 67-0:
Run Code Online (Sandbox Code Playgroud)
所以我一定是在某个地方弄错了,但我真的看不到它.任何帮助,将不胜感激.
我有一个关于 javascript 中多个文件上传的问题。我正在尝试通过动态添加输入来创建自己的多个文件上传。这一切都很简单,但问题是每当我添加一个新的 时,我以前的“文件”类型的输入字段就会重置。
如果我删除更改父 div 的 innerHTML 的最后几行代码,则 my 的值不会重置。有谁知道这个问题如何解决?JavaScript 代码可以在下面找到。提前致谢。
if(document.getElementById("upload_queue").innerHTML.indexOf(_item) == -1)
{
var _row = "<tr id='queue_row_" + items_in_queue + "'>";
_row += "<td>";
_row += "<div class='remove_uploaded_image' onclick='remove_from_queue(" + items_in_queue + ")'></div>";
_row += "</td>";
_row += "<td>";
_row += _item;
_row += "</td>";
_row += "</tr>";
document.getElementById("upload_queue").innerHTML += _row;
document.getElementById("upload_image_" + items_in_queue).style.display = "none";
items_in_queue++;
document.getElementById("uploader_holder").innerHTML +=
'<input id="upload_image_' + items_in_queue +
'" name="upload_image_' + items_in_queue + '" accept="image/jpeg" type="file"' +
'onchange="add_to_upload_queue()" style="display: inline;" …
Run Code Online (Sandbox Code Playgroud) 这可能是一个非常愚蠢的问题,但无论如何我都要问它.我大约一个月毕业,在学习期间,我一直被教导使用属性而不是公共变量.
所以我开始想知道优势是什么,我必须说,在某些情况下,我根本没有任何线索.当然,在设置属性或获取属性时需要执行其他逻辑时很方便,但在获取/设置变量时使用属性是否有任何优势?我的意思的一个例子如下所示(As3).
private var _myVariable:SomeClass;
public function get myVariable():SomeClass{
return _myVariable;
}
public function set myVariable(value:SomeClass):void{
_myVariable = value;
}
Run Code Online (Sandbox Code Playgroud)
所以,重复并澄清一下我的问题:像这样编程我的getter/setter是否有任何优势,或者我可以将变量更改为public并删除getter/setter?
我想要一个获取网站 url 的函数。与此类似:<?php bloginfo('template_directory') ?>
而是将我带到网站的 URL,因此我可以使用它来将我的主页链接到主页按钮。
如果有更好的方法来链接主页按钮,请告诉我。
瑞安
wordpress ×3
javascript ×2
php ×2
accessor ×1
facebook ×1
field ×1
file-upload ×1
google-maps ×1
localhost ×1
permalinks ×1
plugins ×1
properties ×1
regex ×1