标签: multisite

WordPress 多站点中的管理员角色在保存页面时会删除内容

我设置了 WordPress 多站点,并尝试在某些 html 标签上保存带有数据属性的页面内容。超级用户可以毫无问题地保存,但是当管理员或较低角色保存时,它会删除标签中的数据属性。有什么方法可以让其他用户角色在html中保存数据属性吗?

需要明确的是,被删除的不是 html 标签本身,而是数据属性,如下所示:

<p data-item="1">String</p>
Run Code Online (Sandbox Code Playgroud)

上面的内容保存为:

<p>String</p>
Run Code Online (Sandbox Code Playgroud)

这也不是一个tinymce问题,我在所见即所得和源视图之间来回扫描切换并且它保留下来,只有当我保存页面时它才会被删除,并且仅适用于低于超级用户的用户多站点。

任何帮助表示赞赏,谢谢!

wordpress networking attributes custom-data-attribute multisite

5
推荐指数
1
解决办法
1937
查看次数

仅允许通过NGINX中的IP白名单访问某些位置

我正在使用Sucuri扫描仪通知我登录尝试失败,我目前每天收到大约50封以上的电子邮件.我已经尝试了几种不同的方法来阻止访问wp-login.phpwp-admin而没有任何运气,因为我认为这些规则可能不适用于子域(或者通常只是吮吸).

server {
    # Primary domain, secondary domain and subdomains are explicitly 
    # declared so that I can generate certs using CertBot
    server_name primarydomain.com
                secondarydomain.com
                subdomain1.primarydomain.com
                subdomain2.primarydomain.com
                subdomain3.primarydomain.com;

    client_max_body_size 20M;
    root /home/username/www/primarydomain.com/public_html;
    index index.php;
    error_log /home/username/www/primarydomain.com/logs/error.log error;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
        fastcgi_index index.php;
        include fastcgi.conf;
    }

    # This doesn't seem to block access
    location /wp-login.php {
        allow XXX.XXX.XXX.XXX;    # this is my …
Run Code Online (Sandbox Code Playgroud)

subdomain wordpress nginx multisite

4
推荐指数
1
解决办法
886
查看次数

带子域的 Laravel 多站点设置

我想构建 Laravel CMS 并满足以下要求:

  1. 管理员(管理所有站点/数据库)。
  2. 多个站点(在子域上运行,管理自己的数据库),每个站点都具有 API 访问权限。
  3. 相同的代码库(如果需要可以复制)。
  4. 每个站点具有不同数据的同一数据库。

你能让我知道如何使用 Laravel 5.4 设置这个环境吗?

谢谢。

php laravel multisite

3
推荐指数
1
解决办法
8114
查看次数

有什么方法可以在我的functions.php 中覆盖get_stock_quantity?

我在 Wordpress Multisite 中工作,并试图确保从基本站点表中获取所有库存信息。我试图在我的主题的functions.php 中覆盖get_stock_quantity() woocomerce 函数。我发现的是

public function get_stock_quantity( $context = 'view' ) {
    return $this->get_prop( 'stock_quantity', $context );
}
Run Code Online (Sandbox Code Playgroud)

现在这既不是过滤器也不是动作。我覆盖了一个过滤器

add_filter( 'woocommerce_product_get_stock_quantity', 'wcs_custom_get_stock_quantity', 1, 2);

function wcs_custom_get_stock_quantity( $availability, $_product ) {
    global $wpdb;
    $productQuantity = $wpdb->get_results( 'SELECT * FROM '.$wpdb->base_prefix.'postmeta WHERE post_id = '.$_product->get_id() ." AND meta_key = '_stock'", OBJECT );
    return $productQuantity[0]->meta_value;
}
Run Code Online (Sandbox Code Playgroud)

但是 woocommerce_product_get_stock_quantity 仅适用于产品列表页面。单个产品编辑页面使用 get_stock_quantity。

如何在不更改核心文件的情况下覆盖它?谢谢

wordpress woocommerce multisite

3
推荐指数
1
解决办法
1457
查看次数

适用于所有开发人员的 WordPress 多站点和单一数据库

我正在为 WordPress 多站点设置规划开发团队工作流程。我们选择多站点是因为我们想要限制更新/升级过程,并且因为我们的绝大多数客户在后端具有相同的网站结构/要求。对于前端,我们使用“vanilla”主题,其中包含我们的 css/js 框架和主要设置、帖子类型、选项等,我们将基于我们的 vanilla 主题构建所有网站,并为每个主题扩展它客户端通过子主题。我决定将所有内容都置于版本控制 (Git) 之下,甚至是 WordPress 核心文件。

就我们当前的开发环境而言:我们一直在使用集中式 Web 服务器,而不是 LAMP 堆栈或 VVV/Docker 设置,每个开发人员都通过使用单独的 vhost 每个映射到其本地存储库的 url 访问他的项目项目(现场)。因此,在处理 projectA 时,John 的 url 是http://john.projectA.dev,而 Jack 的 url 是http://jack.projectA.dev

最初为所有开发人员使用相同的数据库似乎是确保数据一致性、通用设置等的“合乎逻辑”的方式,但我还没有能够结束。由于 WordPress 在 wp_options 表中存储 siteurl 和 homeurl URL 的方式,我未能找到一种方法将 John 映射到他将通过 URL 工作的站点,或者允许所有开发人员访问公共多站点的 wp- admin 默认为用户的 URL 之一(即http://bob.wpmulisite.dev,其中 Bob 是最初设置多站点环境的开发人员。我尝试通过在每个开发人员的自定义 wp-configs 中定义它们来覆盖 url,但是WP_HOME 和 WP_SITEURL 在 WP 多站点中被忽略了。

我不喜欢必须使用 db 转储、替换转储中的 url 并将其导入到每个用户的数据库中的想法,因为我担心该过程很快会导致问题并且会造成过多的合并,差异-ing 等 但是,我可能是错的,我绝对愿意接受任何建议。

我已经在上面概述了我的主要问题,如果您觉得不清楚,我会很乐意重新表述。在这一点上,我不太确定您可能感兴趣的详细程度,所以请问我,我会深入研究。

database wordpress workflow multisite

3
推荐指数
1
解决办法
1179
查看次数

如何在ddev中创建和加载第二个数据库?

我有一个Drupal多站点,需要为每个站点都有一个数据库,并希望它在ddev中运行,但ddev默认只有一个数据库,名为'db'.我怎样才能获得第二个数据库?

mysql drupal mariadb multisite ddev

3
推荐指数
2
解决办法
1138
查看次数

WordPress 网络安装错误

重新安装 wordpress 多站点

Warning: an existing wordpress network was detected.

我尝试了多种解决方案,包括删除表、重置 .htaccess 和完全重置 wp_config。它第一次安装正常,但是当我注销并登录时出现此错误。

wordpress multisite

2
推荐指数
1
解决办法
4184
查看次数

WordPress 多站点条件?

所以我有一个包含大约 15 个不同站点的 WordPress 多站点。

举个例子:

Country.com(主网站)

  • 美国国家网站
  • 中国国家网
  • 法国国家网站

现在假设在 china.country 中,我想要一个 h1 标签,在标题上写着“THIS IS CHINA”,但不在任何其他多站点上,甚至是主站点上。这样做有条件吗?我检查了 WordPress Codex,但没有运气,我唯一能找到的是is_main_site()没有帮助。

所以基本上我正在寻找一个条件,允许我选择不同的多站点,这样我就可以在它们上拥有不同的内容。

另外,我不太熟悉 WordPress 多站点,因为这是我的第一个,但我确实知道我也可以不使用多站点功能创建一个子目录并在该子目录中安装 WordPress,它会完成相同的事情,但每个多站点文件将是分开的,这听起来不错,但我不确定。任何有关如何为每个多站点提供不同内容的信息将不胜感激,或者如果我什至不应该使用多站点并通过创建子目录并在那里安装 WordPress 来手动完成此操作。

谢谢。

我忘了提及他们都使用相同的主题。因此,它们都共享相同的 index.php(home) 文件,这意味着我需要一个条件来更改其他多站点的外观。

php wordpress conditional-statements multisite

2
推荐指数
1
解决办法
2323
查看次数

如何使用子目录在Azure上设置Wordpress多站点

关于使用子目录在Windows Azure上运行的Wordpress Multisite的问题:它有效吗?你怎么做呢?.

我已经从Azure Gallery安装了Wordpress(4.2.2),更新了wp.config.php和web.config文件以启用和安装Multisites,但结果是半工作解决方案:安装了多个站点,我可以创建和删除新网站,但新网站没有CSS样式(404错误),我无法访问他们的管理仪表板(404:您要查找的资源已被删除,名称已更改,或暂时不可用).

那么,例如,基础网站:

http://mywordpressmultisite.azurewebsites.net

工作良好.但是多站点:

http://mywordpressmultisite.azurewebsites.net/site2/ http://mywordpressmultisite.azurewebsites.net/site3/

显示一个没有样式的CSS网站,但由于我没有管理员权限,我无法对它们做任何事情; 也许是路由错误.

更多细节

我已经按照这篇文章:https://azure.microsoft.com/en-gb/documentation/articles/web-sites-php-convert-wordpress-multisite/,在Azure上设置Wordpress Multisite for sub -directories.我没有关注过去标题为Add Custom Domains的部分,因为我不想这样做(但是,无论如何).

我的web.config文件是:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="WordPress Rule 1" stopProcessing="true">
                    <match url="^index\.php$" ignoreCase="false" />
                    <action type="None" />
                </rule>
                <rule name="WordPress Rule 2" stopProcessing="true">
                    <match url="^([_0-9a-zA-Z-]+/)?wp-admin$" ignoreCase="false" />
                    <action type="Redirect" url="{R:1}wp-admin/" redirectType="Permanent" />
                </rule>
                <rule name="WordPress Rule 3" stopProcessing="true">
                    <match url="^" ignoreCase="false" />
                    <conditions logicalGrouping="MatchAny">
                        <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" />
                        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" />
                    </conditions> …
Run Code Online (Sandbox Code Playgroud)

wordpress azure multisite

2
推荐指数
1
解决办法
1354
查看次数

帖子和子网站上的 WordPress 多站点 404 错误

我已经安装了 WordPress 多站点,我的主站点正在运行,但帖子和子站点转到 404 我搜索了很多,但没有运气。我的 WordPress 配置在http://arabyouthsurvey.com/newsite/media-center/的子目录中

我里面有两个网站。

站点 1:它正在运行,但它的帖子会转到 404。我也可以访问该站点的 wp-admin。

站点2:完全进入404。也无法访问wp-admin

这是我的 htaccess:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /newsite/media-center/
RewriteRule ^index\.php$ - [L]

# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]
</IfModule>

# END WordPress
Run Code Online (Sandbox Code Playgroud)

我在 wp-config.php 中添加了这些行

define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', false);
define('DOMAIN_CURRENT_SITE', 'arabyouthsurvey.com');
define('PATH_CURRENT_SITE', '/newsite/media-center/');
define('SITE_ID_CURRENT_SITE', 1); …
Run Code Online (Sandbox Code Playgroud)

php wordpress .htaccess multisite

1
推荐指数
1
解决办法
5666
查看次数

表单操作 WordPress 插件

我正在创建一个专门的 WordPress 插件,它不能在这种特殊情况之外使用,对于问题的其余部分,我们将把 wordpress 插件文件夹称为插件文件夹。在插件文件夹内,我有多个文件,一个名为 form_submit.php 的文件和一个名为 form_template.php 的文件。form_template.php 注册为页面模板,可以通过 WordPress 仪表板应用于任何帖子或页面。问题是因为 form_submit.php 文件位于插件文件夹内,如何映射表单操作以将数据发布到文件?简单地将其列为

<form action="form_submit.php" method="post" >
Run Code Online (Sandbox Code Playgroud)

无法按照我的需要工作,因为它将在网站的根目录而不是插件文件夹中查找 form_submit.php ,并尝试在插件文件夹中为其映射 URL 方案,例如

<form action="wp-content/plugins/plug-folder/form_submit.php" method="post" >
Run Code Online (Sandbox Code Playgroud)

也不起作用,是否存在我没​​有想到的方法?

编辑:按照建议切换到使用plugins_url()后,它在我使用表单的两个实例之一中工作。我的注册表(附在下面)无法正常工作,返回加载页面时出错。

<form action="<?php echo plugins_url( 'register_submit.php', __FILE__ ); ?>" method="post" autocomplete="off">

                            <?php if($_GET['error'] == 'username'){ ?>
                                <div class="error_message">
                                    Uh oh! That username is already taken.
                                </div>
                            <?php }else if($_GET['error'] == 'email'){ ?>
                                <div class="error_message">
                                    Uh oh! That email is already in use.
                                </div>
                            <?php }else if($_GET['error'] == 'email_invalid'){ ?>
                                <div class="error_message">
                                    Uh …
Run Code Online (Sandbox Code Playgroud)

html php wordpress multisite

1
推荐指数
1
解决办法
9678
查看次数

Wordpress多站点wp_upload_dir错误

目前我正在尝试将图像上传到服务器端的Wordpress-Multisite.(图像已在同一服务器上的另一条路径上)

我写了一个小PHP脚本,它应该处理这个:

    $upload_dir = wp_upload_dir();
    var_dump( $upload_dir); 
    $filename = basename($imagepath);

    if (wp_mkdir_p($upload_dir['path'])) {
        $file = $upload_dir['path'].'/'.$filename;
    } else {
        $file = $upload_dir['basedir'].'/'.$filename;
    }

    copy($imagepath, $file);
    $wp_filetype = wp_check_filetype($filename, null);
    $attachment = array(
                    'guid' => $upload_dir['url'].'/'.basename($filename),
                    'post_mime_type' => $wp_filetype['type'],
                    'post_title' => sanitize_file_name($filename),
                    'post_content' => '',
                    'post_status' => 'inherit', );

    $attach_id = wp_insert_attachment($attachment, $file, $postid);
Run Code Online (Sandbox Code Playgroud)

一切正常,但图像存储在错误的文件夹中. wp_upload_dir();返回公共路径/wp-content/uploads/2016/03,而不是特定子网站的路径/wp-content/uploads/sites/SITE_ID/2016/03

以后当WP使用图像时,图像的网址设置为http://example.com/wp-content/uploads/sites/SITE_ID/2016/03/IMAGE.JPG(这是不正确的......)

使用wordpress内置的媒体上传工具上传文件工作正常(文件存储在其中/wp-content/uploads/sites/SITE_ID/2016/03)

你看,wp_upload_dir()工作不正确..

谢谢..

php url wordpress upload multisite

0
推荐指数
1
解决办法
1933
查看次数